Class PerFieldAnalyzerWrapper
- java.lang.Object
-
- org.apache.lucene.analysis.Analyzer
-
- org.apache.lucene.analysis.AnalyzerWrapper
-
- org.apache.lucene.analysis.DelegatingAnalyzerWrapper
-
- org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public final class PerFieldAnalyzerWrapper extends DelegatingAnalyzerWrapper
This analyzer is used to facilitate scenarios where different fields require different analysis techniques. Use the Map argument inPerFieldAnalyzerWrapper(Analyzer, java.util.Map)
to add non-default analyzers for fields.Example usage:
Map<String,Analyzer> analyzerPerField = new HashMap<>(); analyzerPerField.put("firstname", new KeywordAnalyzer()); analyzerPerField.put("lastname", new KeywordAnalyzer()); PerFieldAnalyzerWrapper aWrapper = new PerFieldAnalyzerWrapper(new StandardAnalyzer(version), 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.
- Since:
- 3.1
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.analysis.Analyzer
Analyzer.ReuseStrategy, Analyzer.TokenStreamComponents
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.analysis.Analyzer
GLOBAL_REUSE_STRATEGY, PER_FIELD_REUSE_STRATEGY
-
-
Constructor Summary
Constructors Constructor 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Analyzer
getWrappedAnalyzer(String fieldName)
String
toString()
-
Methods inherited from class org.apache.lucene.analysis.DelegatingAnalyzerWrapper
wrapComponents, wrapReader, wrapReaderForNormalization, wrapTokenStreamForNormalization
-
Methods inherited from class org.apache.lucene.analysis.AnalyzerWrapper
attributeFactory, createComponents, getOffsetGap, getPositionIncrementGap, initReader, initReaderForNormalization, normalize
-
Methods inherited from class org.apache.lucene.analysis.Analyzer
close, getReuseStrategy, normalize, tokenStream, tokenStream
-
-
-
-
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.
-
PerFieldAnalyzerWrapper
public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer, Map<String,Analyzer> fieldAnalyzers)
Constructs with default analyzer and a map of analyzers to use for specific fields.- Parameters:
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
-
-
Method Detail
-
getWrappedAnalyzer
protected Analyzer getWrappedAnalyzer(String fieldName)
- Specified by:
getWrappedAnalyzer
in classAnalyzerWrapper
-
-