org.apache.lucene.analysis
public class: PerFieldAnalyzerWrapper [javadoc |
source]
java.lang.Object
org.apache.lucene.analysis.Analyzer
org.apache.lucene.analysis.PerFieldAnalyzerWrapper
This analyzer is used to facilitate scenarios where different
fields require different analysis techniques. Use
#addAnalyzer
to add a non-default analyzer on a field name basis.
Example usage:
PerFieldAnalyzerWrapper aWrapper =
new PerFieldAnalyzerWrapper(new StandardAnalyzer());
aWrapper.addAnalyzer("firstname", new KeywordAnalyzer());
aWrapper.addAnalyzer("lastname", new KeywordAnalyzer());
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: |
public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer) {
this.defaultAnalyzer = defaultAnalyzer;
}
Constructs with default analyzer. Parameters:
defaultAnalyzer - Any fields not specifically
defined to use a different analyzer will use the one provided here.
|
| Method from org.apache.lucene.analysis.PerFieldAnalyzerWrapper Detail: |
public void addAnalyzer(String fieldName,
Analyzer analyzer) {
analyzerMap.put(fieldName, analyzer);
}
Defines an analyzer to use for the specified field. |
public int getPositionIncrementGap(String fieldName) {
Analyzer analyzer = (Analyzer) analyzerMap.get(fieldName);
if (analyzer == null)
analyzer = defaultAnalyzer;
return analyzer.getPositionIncrementGap(fieldName);
}
Return the positionIncrementGap from the analyzer assigned to fieldName |
public TokenStream reusableTokenStream(String fieldName,
Reader reader) throws IOException {
Analyzer analyzer = (Analyzer) analyzerMap.get(fieldName);
if (analyzer == null)
analyzer = defaultAnalyzer;
return analyzer.reusableTokenStream(fieldName, reader);
}
|
public String toString() {
return "PerFieldAnalyzerWrapper(" + analyzerMap + ", default=" + defaultAnalyzer + ")";
}
|
public TokenStream tokenStream(String fieldName,
Reader reader) {
Analyzer analyzer = (Analyzer) analyzerMap.get(fieldName);
if (analyzer == null) {
analyzer = defaultAnalyzer;
}
return analyzer.tokenStream(fieldName, reader);
}
|