org.apache.lucene.analysis.fa
Class PersianAnalyzer

java.lang.Object
  extended by org.apache.lucene.analysis.Analyzer
      extended by org.apache.lucene.analysis.ReusableAnalyzerBase
          extended by org.apache.lucene.analysis.StopwordAnalyzerBase
              extended by 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