public abstract class Analyzer extends Object
In order to define what analysis is done, subclasses must define their
Analyzer.TokenStreamComponents in createComponents(String, Reader).
The components are then reused in each call to tokenStream(String, Reader).
| Modifier and Type | Class and Description |
|---|---|
static class |
Analyzer.GlobalReuseStrategy
Implementation of
Analyzer.ReuseStrategy that reuses the same components for
every field. |
static class |
Analyzer.PerFieldReuseStrategy
Implementation of
Analyzer.ReuseStrategy that reuses components per-field by
maintaining a Map of TokenStreamComponent per field name. |
static class |
Analyzer.ReuseStrategy
Strategy defining how TokenStreamComponents are reused per call to
tokenStream(String, java.io.Reader). |
static class |
Analyzer.TokenStreamComponents
This class encapsulates the outer components of a token stream.
|
| Constructor and Description |
|---|
Analyzer() |
Analyzer(Analyzer.ReuseStrategy reuseStrategy) |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Frees persistent resources used by this Analyzer
|
protected abstract Analyzer.TokenStreamComponents |
createComponents(String fieldName,
Reader reader)
Creates a new
Analyzer.TokenStreamComponents instance for this analyzer. |
int |
getOffsetGap(String fieldName)
Just like
getPositionIncrementGap(java.lang.String), except for
Token offsets instead. |
int |
getPositionIncrementGap(String fieldName)
Invoked before indexing a IndexableField instance if
terms have already been added to that field.
|
protected Reader |
initReader(String fieldName,
Reader reader)
Override this if you want to add a CharFilter chain.
|
TokenStream |
tokenStream(String fieldName,
Reader reader)
Creates a TokenStream that is allowed to be re-use from the previous time
that the same thread called this method.
|
public Analyzer()
public Analyzer(Analyzer.ReuseStrategy reuseStrategy)
protected abstract Analyzer.TokenStreamComponents createComponents(String fieldName, Reader reader)
Analyzer.TokenStreamComponents instance for this analyzer.fieldName - the name of the fields content passed to the
Analyzer.TokenStreamComponents sink as a readerreader - the reader passed to the Tokenizer constructorAnalyzer.TokenStreamComponents for this analyzer.public final TokenStream tokenStream(String fieldName, Reader reader) throws IOException
This method uses createComponents(String, Reader) to obtain an
instance of Analyzer.TokenStreamComponents. It returns the sink of the
components and stores the components internally. Subsequent calls to this
method will reuse the previously stored components after resetting them
through Analyzer.TokenStreamComponents.setReader(Reader).
fieldName - the name of the field the created TokenStream is used forreader - the reader the streams source reads fromIOExceptionprotected Reader initReader(String fieldName, Reader reader)
public int getPositionIncrementGap(String fieldName)
fieldName - IndexableField name being indexed.tokenStream(String,Reader)public int getOffsetGap(String fieldName)
getPositionIncrementGap(java.lang.String), except for
Token offsets instead. By default this returns 1.
This method is only called if the field
produced at least one token for indexing.fieldName - the field just indexedtokenStream(String,Reader)public void close()
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.