Package org.apache.lucene.analysis
Class ReusableAnalyzerBase
- java.lang.Object
-
- org.apache.lucene.analysis.Analyzer
-
- org.apache.lucene.analysis.ReusableAnalyzerBase
-
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
KeywordAnalyzer,SimpleAnalyzer,StopwordAnalyzerBase,WhitespaceAnalyzer
public abstract class ReusableAnalyzerBase extends Analyzer
An convenience subclass of Analyzer that makes it easy to implementTokenStreamreuse.ReusableAnalyzerBase is a simplification of Analyzer that supports easy reuse for the most common use-cases. Analyzers such as
PerFieldAnalyzerWrapperthat behave differently depending upon the field name need to subclass Analyzer directly instead.To prevent consistency problems, this class does not allow subclasses to extend
reusableTokenStream(String, Reader)ortokenStream(String, Reader)directly. Instead, subclasses must implementcreateComponents(String, Reader).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classReusableAnalyzerBase.TokenStreamComponentsThis class encapsulates the outer components of a token stream.
-
Constructor Summary
Constructors Constructor Description ReusableAnalyzerBase()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract ReusableAnalyzerBase.TokenStreamComponentscreateComponents(String fieldName, Reader reader)Creates a newReusableAnalyzerBase.TokenStreamComponentsinstance for this analyzer.protected ReaderinitReader(Reader reader)Override this if you want to add a CharFilter chain.TokenStreamreusableTokenStream(String fieldName, Reader reader)This method usescreateComponents(String, Reader)to obtain an instance ofReusableAnalyzerBase.TokenStreamComponents.TokenStreamtokenStream(String fieldName, Reader reader)This method usescreateComponents(String, Reader)to obtain an instance ofReusableAnalyzerBase.TokenStreamComponentsand returns the sink of the components.-
Methods inherited from class org.apache.lucene.analysis.Analyzer
close, getOffsetGap, getPositionIncrementGap, getPreviousTokenStream, setPreviousTokenStream
-
-
-
-
Method Detail
-
createComponents
protected abstract ReusableAnalyzerBase.TokenStreamComponents createComponents(String fieldName, Reader reader)
Creates a newReusableAnalyzerBase.TokenStreamComponentsinstance for this analyzer.- Parameters:
fieldName- the name of the fields content passed to theReusableAnalyzerBase.TokenStreamComponentssink as a readerreader- the reader passed to theTokenizerconstructor- Returns:
- the
ReusableAnalyzerBase.TokenStreamComponentsfor this analyzer.
-
reusableTokenStream
public final TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException
This method usescreateComponents(String, Reader)to obtain an instance ofReusableAnalyzerBase.TokenStreamComponents. It returns the sink of the components and stores the components internally. Subsequent calls to this method will reuse the previously stored components if and only if theReusableAnalyzerBase.TokenStreamComponents.reset(Reader)method returnedtrue. Otherwise a new instance ofReusableAnalyzerBase.TokenStreamComponentsis created.- Overrides:
reusableTokenStreamin classAnalyzer- Parameters:
fieldName- the name of the field the created TokenStream is used forreader- the reader the streams source reads from- Throws:
IOException
-
tokenStream
public final TokenStream tokenStream(String fieldName, Reader reader)
This method usescreateComponents(String, Reader)to obtain an instance ofReusableAnalyzerBase.TokenStreamComponentsand returns the sink of the components. Each calls to this method will create a new instance ofReusableAnalyzerBase.TokenStreamComponents. CreatedTokenStreaminstances are never reused.- Specified by:
tokenStreamin classAnalyzer- Parameters:
fieldName- the name of the field the created TokenStream is used forreader- the reader the streams source reads from
-
-