org.apache.lucene.analysis
Class PerFieldAnalyzerWrapper
- java.lang.Object
-
- org.apache.lucene.analysis.Analyzer
-
- org.apache.lucene.analysis.PerFieldAnalyzerWrapper
-
public class PerFieldAnalyzerWrapper extends Analyzer
This analyzer is used to facilitate scenarios where different fields require different analysis techniques. UseaddAnalyzer(java.lang.String, org.apache.lucene.analysis.Analyzer)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 Summary
Constructors Constructor and Description PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)Constructs with default analyzer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidaddAnalyzer(java.lang.String fieldName, Analyzer analyzer)Defines an analyzer to use for the specified field.intgetPositionIncrementGap(java.lang.String fieldName)Return the positionIncrementGap from the analyzer assigned to fieldNameTokenStreamreusableTokenStream(java.lang.String fieldName, java.io.Reader reader)Creates a TokenStream that is allowed to be re-used from the previous time that the same thread called this method.TokenStreamtokenStream(java.lang.String fieldName, java.io.Reader reader)Creates a TokenStream which tokenizes all the text in the provided Reader.java.lang.StringtoString()
-
-
-
Constructor Detail
-
PerFieldAnalyzerWrapper
public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)
Constructs with default analyzer.- Parameters:
defaultAnalyzer- Any fields not specifically defined to use a different analyzer will use the one provided here.
-
-
Method Detail
-
addAnalyzer
public void addAnalyzer(java.lang.String fieldName, Analyzer analyzer)Defines an analyzer to use for the specified field.- Parameters:
fieldName- field name requiring a non-default analyzeranalyzer- non-default analyzer to use for field
-
tokenStream
public TokenStream tokenStream(java.lang.String fieldName, java.io.Reader reader)
Description copied from class:AnalyzerCreates a TokenStream which tokenizes all the text in the provided Reader. Default implementation forwards to tokenStream(Reader) for compatibility with older version. Override to allow Analyzer to choose strategy based on document and/or field. Must be able to handle null field name for backward compatibility.- Specified by:
tokenStreamin classAnalyzer
-
reusableTokenStream
public TokenStream reusableTokenStream(java.lang.String fieldName, java.io.Reader reader) throws java.io.IOException
Description copied from class:AnalyzerCreates a TokenStream that is allowed to be re-used from the previous time that the same thread called this method. Callers that do not need to use more than one TokenStream at the same time from this analyzer should use this method for better performance.- Overrides:
reusableTokenStreamin classAnalyzer- Throws:
java.io.IOException
-
getPositionIncrementGap
public int getPositionIncrementGap(java.lang.String fieldName)
Return the positionIncrementGap from the analyzer assigned to fieldName- Overrides:
getPositionIncrementGapin classAnalyzer- Parameters:
fieldName- Fieldable name being indexed.- Returns:
- position increment gap, added to the next token emitted from
Analyzer.tokenStream(String,Reader)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-
DataMelt 3.0 © DataMelt by jWork.ORG