## org.apache.lucene.analysis.fa
Class PersianAnalyzer

    java.lang.Object
      org.apache.lucene.analysis.Analyzer
          org.apache.lucene.analysis.ReusableAnalyzerBase
              org.apache.lucene.analysis.StopwordAnalyzerBase
                  org.apache.lucene.analysis.fa.PersianAnalyzer

All Implemented Interfaces:
  Closeable

    public final class PersianAnalyzer

extends StopwordAnalyzerBase

`Analyzer` for Persian.

This Analyzer uses `ArabicLetterTokenizer` which implies tokenizing around zero-width non-joiner in addition to whitespace. Some persian-specific variant forms (such as farsi yeh and keheh) are standardized. "Stemming" is accomplished via stopwords.

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.lucene.analysis.ReusableAnalyzerBase
`ReusableAnalyzerBase.TokenStreamComponents`

Field Summary
`static String` `DEFAULT_STOPWORD_FILE` File containing default Persian stopwords.
`static String` `STOPWORDS_COMMENT` The comment character in the stopwords file.

Fields inherited from class org.apache.lucene.analysis.StopwordAnalyzerBase
`matchVersion, stopwords`

Constructor Summary
`PersianAnalyzer(Version matchVersion)` Builds an analyzer with the default stop words: `DEFAULT_STOPWORD_FILE`.
`PersianAnalyzer(Version matchVersion, File stopwords)` Deprecated. use `PersianAnalyzer(Version, Set)` instead
`PersianAnalyzer(Version matchVersion, Hashtable<?,?> stopwords)` Deprecated. use `PersianAnalyzer(Version, Set)` instead
`PersianAnalyzer(Version matchVersion, Set<?> stopwords)` Builds an analyzer with the given stop words
`PersianAnalyzer(Version matchVersion, String... stopwords)` Deprecated. use `PersianAnalyzer(Version, Set)` instead

Method Summary
`protected ReusableAnalyzerBase.TokenStreamComponents` `createComponents(String fieldName, Reader reader)` Creates `ReusableAnalyzerBase.TokenStreamComponents` used to tokenize all the text in the provided `Reader`.
`static Set<?>` `getDefaultStopSet()` Returns an unmodifiable instance of the default stop-words set.
`protected Reader` `initReader(Reader reader)` Wraps the Reader with `PersianCharFilter`

Methods inherited from class org.apache.lucene.analysis.StopwordAnalyzerBase
`getStopwordSet, loadStopwordSet, loadStopwordSet, loadStopwordSet`

Methods inherited from class org.apache.lucene.analysis.ReusableAnalyzerBase
`reusableTokenStream, tokenStream`

Methods inherited from class org.apache.lucene.analysis.Analyzer
`close, getOffsetGap, getPositionIncrementGap, getPreviousTokenStream, setPreviousTokenStream`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_STOPWORD_FILE

    public static final String DEFAULT_STOPWORD_FILE

  File containing default Persian stopwords. Default stopword list is from http://members.unine.ch/jacques.savoy/clef/index.html The stopword list is BSD-Licensed.

  See Also:
    Constant Field Values

### STOPWORDS_COMMENT

    public static final String STOPWORDS_COMMENT

  The comment character in the stopwords file. All lines prefixed with this will be ignored

  See Also:
    Constant Field Values

Constructor Detail

### PersianAnalyzer

    public PersianAnalyzer(Version matchVersion)

  Builds an analyzer with the default stop words: `DEFAULT_STOPWORD_FILE`.

### PersianAnalyzer

    public PersianAnalyzer(Version matchVersion,
                           Set<?> stopwords)

  Builds an analyzer with the given stop words

  Parameters:
    `matchVersion` - lucene compatibility version
    `stopwords` - a stopword set

### PersianAnalyzer

    @Deprecated
    public PersianAnalyzer(Version matchVersion,
                                      String... stopwords)

  Deprecated. use `PersianAnalyzer(Version, Set)` instead

  Builds an analyzer with the given stop words.

### PersianAnalyzer

    @Deprecated
    public PersianAnalyzer(Version matchVersion,
                                      Hashtable<?,?> stopwords)

  Deprecated. use `PersianAnalyzer(Version, Set)` instead

  Builds an analyzer with the given stop words.

### PersianAnalyzer

    @Deprecated
    public PersianAnalyzer(Version matchVersion,
                                      File stopwords)
                    throws IOException

  Deprecated. use `PersianAnalyzer(Version, Set)` instead

  Builds an analyzer with the given stop words. Lines can be commented out using `STOPWORDS_COMMENT`

  Throws:
    `IOException`

Method Detail

### getDefaultStopSet

    public static Set<?> getDefaultStopSet()

  Returns an unmodifiable instance of the default stop-words set.

  Returns:
    an unmodifiable instance of the default stop-words set.

### createComponents

    protected ReusableAnalyzerBase.TokenStreamComponents createComponents(String fieldName,
                                                                          Reader reader)

  Creates `ReusableAnalyzerBase.TokenStreamComponents` used to tokenize all the text in the provided `Reader`.

  Specified by:
    `createComponents` in class `ReusableAnalyzerBase`
  Parameters:
    `fieldName` - the name of the fields content passed to the `ReusableAnalyzerBase.TokenStreamComponents` sink as a reader
    `reader` - the reader passed to the `Tokenizer` constructor
  Returns:
    `ReusableAnalyzerBase.TokenStreamComponents` built from a `StandardTokenizer` filtered with `LowerCaseFilter`, `ArabicNormalizationFilter`, `PersianNormalizationFilter` and Persian Stop words

### initReader

    protected Reader initReader(Reader reader)

  Wraps the Reader with `PersianCharFilter`

  Overrides:
    `initReader` in class `ReusableAnalyzerBase`