public final class PerFieldAnalyzerWrapper extends Analyzer
PerFieldAnalyzerWrapper(Analyzer, java.util.Map)
to add non-default analyzers for fields.
Example usage:
Map analyzerPerField = new HashMap(); analyzerPerField.put("firstname", new KeywordAnalyzer()); analyzerPerField.put("lastname", new KeywordAnalyzer()); PerFieldAnalyzerWrapper aWrapper = new PerFieldAnalyzerWrapper(new StandardAnalyzer(), analyzerPerField);
In this example, StandardAnalyzer will be used for all fields except "firstname" and "lastname", for which KeywordAnalyzer will be used.
A PerFieldAnalyzerWrapper can be used like any other analyzer, for both indexing and query parsing.
Constructor and Description |
---|
PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)
Constructs with default analyzer.
|
PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer,
Map<String,Analyzer> fieldAnalyzers)
Constructs with default analyzer and a map of analyzers to use for
specific fields.
|
Modifier and Type | Method and Description |
---|---|
void |
addAnalyzer(String fieldName,
Analyzer analyzer)
Deprecated.
Changing the Analyzer for a field after instantiation prevents
reusability. Analyzers for fields should be set during construction.
|
int |
getOffsetGap(Fieldable field)
Return the offsetGap from the analyzer assigned to field
|
int |
getPositionIncrementGap(String fieldName)
Return the positionIncrementGap from the analyzer assigned to fieldName
|
TokenStream |
reusableTokenStream(String fieldName,
Reader reader)
Creates a TokenStream that is allowed to be re-used
from the previous time that the same thread called
this method.
|
TokenStream |
tokenStream(String fieldName,
Reader reader)
Creates a TokenStream which tokenizes all the text in the provided
Reader.
|
String |
toString() |
close, getPreviousTokenStream, setPreviousTokenStream
public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)
defaultAnalyzer
- Any fields not specifically
defined to use a different analyzer will use the one provided here.public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer, Map<String,Analyzer> fieldAnalyzers)
defaultAnalyzer
- Any fields not specifically
defined to use a different analyzer will use the one provided here.fieldAnalyzers
- a Map (String field name to the Analyzer) to be
used for those fields@Deprecated public void addAnalyzer(String fieldName, Analyzer analyzer)
fieldName
- field name requiring a non-default analyzeranalyzer
- non-default analyzer to use for fieldpublic TokenStream tokenStream(String fieldName, Reader reader)
Analyzer
tokenStream
in class Analyzer
public TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException
Analyzer
reusableTokenStream
in class Analyzer
IOException
public int getPositionIncrementGap(String fieldName)
getPositionIncrementGap
in class Analyzer
fieldName
- Fieldable name being indexed.Analyzer.tokenStream(String,Reader)
public int getOffsetGap(Fieldable field)
getOffsetGap
in class Analyzer
field
- the field just indexedAnalyzer.tokenStream(String,Reader)