Class CompletionAnalyzer
- java.lang.Object
-
- org.apache.lucene.analysis.Analyzer
-
- org.apache.lucene.analysis.AnalyzerWrapper
-
- org.apache.lucene.search.suggest.document.CompletionAnalyzer
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public final class CompletionAnalyzer extends AnalyzerWrapper
Wraps anAnalyzer
to provide additional completion-only tuning (e.g. preserving token separators, preserving position increments while converting a token stream to an automaton)Can be used to index
SuggestField
andContextSuggestField
and as a query analyzer toPrefixCompletionQuery
amdFuzzyCompletionQuery
NOTE: In most cases, index and query analyzer should have same values for
preservePositionIncrements()
andpreserveSep()
- Since:
- 5.1.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.analysis.Analyzer
Analyzer.ReuseStrategy, Analyzer.TokenStreamComponents
-
-
Field Summary
Fields Modifier and Type Field Description private Analyzer
analyzer
(package private) static int
HOLE_CHARACTER
Represent a hole character, inserted byTokenStreamToAutomaton
private int
maxGraphExpansions
Sets the maximum number of graph expansions of a completion automatonprivate boolean
preservePositionIncrements
Preserve position increments for tokens when converting to an automatonprivate boolean
preserveSep
Preserve separation between tokens when converting to an automaton-
Fields inherited from class org.apache.lucene.analysis.Analyzer
GLOBAL_REUSE_STRATEGY, PER_FIELD_REUSE_STRATEGY
-
-
Constructor Summary
Constructors Constructor Description CompletionAnalyzer(Analyzer analyzer)
CallsCompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)
preserving token separation, position increments and no limit on graph expansionsCompletionAnalyzer(Analyzer analyzer, boolean preserveSep, boolean preservePositionIncrements)
CallsCompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)
with no limit on graph expansionsCompletionAnalyzer(Analyzer analyzer, boolean preserveSep, boolean preservePositionIncrements, int maxGraphExpansions)
Wraps an analyzer to convert its output token stream to an automatonCompletionAnalyzer(Analyzer analyzer, int maxGraphExpansions)
CallsCompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)
preserving token separation and position increments
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Analyzer
getWrappedAnalyzer(java.lang.String fieldName)
Retrieves the wrapped Analyzer appropriate for analyzing the field with the given nameboolean
preservePositionIncrements()
Returns true if position increments are preserved when converting the token stream to an automatonboolean
preserveSep()
Returns true if separation between tokens are preserved when converting the token stream to an automatonprotected Analyzer.TokenStreamComponents
wrapComponents(java.lang.String fieldName, Analyzer.TokenStreamComponents components)
Wraps / alters the given TokenStreamComponents, taken from the wrapped Analyzer, to form new components.-
Methods inherited from class org.apache.lucene.analysis.AnalyzerWrapper
attributeFactory, createComponents, getOffsetGap, getPositionIncrementGap, initReader, initReaderForNormalization, normalize, wrapReader, wrapReaderForNormalization, wrapTokenStreamForNormalization
-
Methods inherited from class org.apache.lucene.analysis.Analyzer
close, getReuseStrategy, getVersion, normalize, setVersion, tokenStream, tokenStream
-
-
-
-
Field Detail
-
HOLE_CHARACTER
static final int HOLE_CHARACTER
Represent a hole character, inserted byTokenStreamToAutomaton
- See Also:
- Constant Field Values
-
analyzer
private final Analyzer analyzer
-
preserveSep
private final boolean preserveSep
Preserve separation between tokens when converting to an automatonDefaults to
true
-
preservePositionIncrements
private final boolean preservePositionIncrements
Preserve position increments for tokens when converting to an automatonDefaults to
true
-
maxGraphExpansions
private final int maxGraphExpansions
Sets the maximum number of graph expansions of a completion automatonDefaults to
-1
(no limit)
-
-
Constructor Detail
-
CompletionAnalyzer
public CompletionAnalyzer(Analyzer analyzer, boolean preserveSep, boolean preservePositionIncrements, int maxGraphExpansions)
Wraps an analyzer to convert its output token stream to an automaton- Parameters:
analyzer
- token stream to be converted to an automatonpreserveSep
- Preserve separation between tokens when converting to an automatonpreservePositionIncrements
- Preserve position increments for tokens when converting to an automatonmaxGraphExpansions
- Sets the maximum number of graph expansions of a completion automaton
-
CompletionAnalyzer
public CompletionAnalyzer(Analyzer analyzer)
CallsCompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)
preserving token separation, position increments and no limit on graph expansions
-
CompletionAnalyzer
public CompletionAnalyzer(Analyzer analyzer, boolean preserveSep, boolean preservePositionIncrements)
CallsCompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)
with no limit on graph expansions
-
CompletionAnalyzer
public CompletionAnalyzer(Analyzer analyzer, int maxGraphExpansions)
CallsCompletionAnalyzer(org.apache.lucene.analysis.Analyzer, boolean, boolean, int)
preserving token separation and position increments
-
-
Method Detail
-
preserveSep
public boolean preserveSep()
Returns true if separation between tokens are preserved when converting the token stream to an automaton
-
preservePositionIncrements
public boolean preservePositionIncrements()
Returns true if position increments are preserved when converting the token stream to an automaton
-
getWrappedAnalyzer
protected Analyzer getWrappedAnalyzer(java.lang.String fieldName)
Description copied from class:AnalyzerWrapper
Retrieves the wrapped Analyzer appropriate for analyzing the field with the given name- Specified by:
getWrappedAnalyzer
in classAnalyzerWrapper
- Parameters:
fieldName
- Name of the field which is to be analyzed- Returns:
- Analyzer for the field with the given name. Assumed to be non-null
-
wrapComponents
protected Analyzer.TokenStreamComponents wrapComponents(java.lang.String fieldName, Analyzer.TokenStreamComponents components)
Description copied from class:AnalyzerWrapper
Wraps / alters the given TokenStreamComponents, taken from the wrapped Analyzer, to form new components. It is through this method that new TokenFilters can be added by AnalyzerWrappers. By default, the given components are returned.- Overrides:
wrapComponents
in classAnalyzerWrapper
- Parameters:
fieldName
- Name of the field which is to be analyzedcomponents
- TokenStreamComponents taken from the wrapped Analyzer- Returns:
- Wrapped / altered TokenStreamComponents.
-
-