public interface AnalysisPlugin
Plugins 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 and Description |
|---|---|
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<AnalyzerProvider<? extends org.apache.lucene.analysis.Analyzer>>> |
getAnalyzers()
Override to add additional
Analyzers. |
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<CharFilterFactory>> |
getCharFilters()
Override to add additional
CharFilters. |
default java.util.Map<java.lang.String,org.apache.lucene.analysis.hunspell.Dictionary> |
getHunspellDictionaries()
Override to add additional hunspell
Dictionarys. |
default java.util.List<PreConfiguredCharFilter> |
getPreConfiguredCharFilters()
Override to add additional pre-configured
CharFilters. |
default java.util.List<PreConfiguredTokenFilter> |
getPreConfiguredTokenFilters()
Override to add additional pre-configured
TokenFilters. |
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
TokenFilters. |
default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<TokenizerFactory>> |
getTokenizers()
Override to add additional
Tokenizers. |
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()
CharFilters. See #requriesAnalysisSettings(AnalysisProvider)
how to on get the configuration from the index.default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<TokenFilterFactory>> getTokenFilters()
TokenFilters. See #requriesAnalysisSettings(AnalysisProvider)
how to on get the configuration from the index.default java.util.Map<java.lang.String,AnalysisModule.AnalysisProvider<TokenizerFactory>> getTokenizers()
Tokenizers. 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()
Analyzers. See #requriesAnalysisSettings(AnalysisProvider)
how to on get the configuration from the index.default java.util.List<PreConfiguredCharFilter> getPreConfiguredCharFilters()
CharFilters.default java.util.List<PreConfiguredTokenFilter> getPreConfiguredTokenFilters()
TokenFilters.default java.util.List<PreConfiguredTokenizer> getPreConfiguredTokenizers()
Tokenizer.default java.util.Map<java.lang.String,org.apache.lucene.analysis.hunspell.Dictionary> getHunspellDictionaries()
Dictionarys.static <T> AnalysisModule.AnalysisProvider<T> requriesAnalysisSettings(AnalysisModule.AnalysisProvider<T> provider)
AnalysisModule.AnalysisProvider as requiring the index's settings.