public interface AnalysisPlugin
Plugin
s that extends Elasticsearch's analysis functionality. To add an additional
TokenFilter
just implement the interface and implement the getTokenFilters()
method:
public class AnalysisPhoneticPlugin extends Plugin implements AnalysisPlugin {
@Override
public Map<String, AnalysisProvider<TokenFilterFactory>> getTokenFilters() {
return singletonMap("phonetic", PhoneticTokenFilterFactory::new);
}
}
Elasticsearch doesn't have any automatic mechanism to share these components between indexes. If any component is heavy enough to warrant
such sharing then it is the Pugin's responsibility to do it in their AnalysisModule.AnalysisProvider
implementation. We recommend against doing
this unless absolutely necessary because it can be difficult to get the caching right given things like behavior changes across versions.Modifier and Type | Method | Description |
---|---|---|
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<AnalyzerProvider<? extends org.apache.lucene.analysis.Analyzer>>> |
getAnalyzers() |
Override to add additional
Analyzer s. |
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<CharFilterFactory>> |
getCharFilters() |
Override to add additional
CharFilter s. |
default java.util.Map<java.lang.String,org.apache.lucene.analysis.hunspell.Dictionary> |
getHunspellDictionaries() |
Override to add additional hunspell
Dictionary s. |
default java.util.List<PreConfiguredCharFilter> |
getPreConfiguredCharFilters() |
Override to add additional pre-configured
CharFilter s. |
default java.util.List<PreConfiguredTokenFilter> |
getPreConfiguredTokenFilters() |
Override to add additional pre-configured
TokenFilter s. |
default java.util.List<PreConfiguredTokenizer> |
getPreConfiguredTokenizers() |
Override to add additional pre-configured
Tokenizer . |
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<TokenFilterFactory>> |
getTokenFilters() |
Override to add additional
TokenFilter s. |
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<TokenizerFactory>> |
getTokenizers() |
Override to add additional
Tokenizer s. |
static <T> AnalysisModule.AnalysisProvider<T> |
requriesAnalysisSettings(AnalysisModule.AnalysisProvider<T> provider) |
Mark an
AnalysisModule.AnalysisProvider as requiring the index's settings. |
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<CharFilterFactory>> getCharFilters()
CharFilter
s. See requriesAnalysisSettings(AnalysisProvider)
how to on get the configuration from the index.default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<TokenFilterFactory>> getTokenFilters()
TokenFilter
s. See requriesAnalysisSettings(AnalysisProvider)
how to on get the configuration from the index.default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<TokenizerFactory>> getTokenizers()
Tokenizer
s. See requriesAnalysisSettings(AnalysisProvider)
how to on get the configuration from the index.default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<AnalyzerProvider<? extends org.apache.lucene.analysis.Analyzer>>> getAnalyzers()
Analyzer
s. See requriesAnalysisSettings(AnalysisProvider)
how to on get the configuration from the index.default java.util.List<PreConfiguredCharFilter> getPreConfiguredCharFilters()
CharFilter
s.default java.util.List<PreConfiguredTokenFilter> getPreConfiguredTokenFilters()
TokenFilter
s.default java.util.List<PreConfiguredTokenizer> getPreConfiguredTokenizers()
Tokenizer
.default java.util.Map<java.lang.String,org.apache.lucene.analysis.hunspell.Dictionary> getHunspellDictionaries()
Dictionary
s.static <T> AnalysisModule.AnalysisProvider<T> requriesAnalysisSettings(AnalysisModule.AnalysisProvider<T> provider)
AnalysisModule.AnalysisProvider
as requiring the index's settings.