public final class AnalysisModule extends AbstractModule
Analyzer
, TokenFilter
, Tokenizer
and CharFilter
can be extended in plugins and registered on node startup when the analysis module
gets loaded. Since elasticsearch needs to create multiple instances for different configurations dedicated factories need to be provided for
each of the components:
Analyzer
can be exposed via AnalyzerProvider
and registered on registerAnalyzer(String, AnalysisProvider)
TokenFilter
can be exposed via TokenFilterFactory
and registered on registerTokenFilter(String, AnalysisProvider)
Tokenizer
can be exposed via TokenizerFactory
and registered on registerTokenizer(String, AnalysisProvider)
CharFilter
can be exposed via CharFilterFactory
and registered on registerCharFilter(String, AnalysisProvider)
AnalysisModule.AnalysisProvider
is only a functional interface that allows to register factory constructors directly like the plugin example below:
public class MyAnalysisPlugin extends Plugin { \@Override public String name() { return "analysis-my-plugin"; } \@Override public String description() { return "my very fast and efficient analyzer"; } public void onModule(AnalysisModule module) { module.registerAnalyzer("my-analyzer-name", MyAnalyzer::new); } }
Modifier and Type | Class and Description |
---|---|
static interface |
AnalysisModule.AnalysisProvider<T>
AnalysisProvider is the basic factory interface for registering analysis components like:
TokenizerFactory - see registerTokenizer(String, AnalysisProvider)
CharFilterFactory - see registerCharFilter(String, AnalysisProvider)
AnalyzerProvider - see registerAnalyzer(String, AnalysisProvider)
TokenFilterFactory - see registerTokenFilter(String, AnalysisProvider) )}
|
Constructor and Description |
---|
AnalysisModule(Environment environment)
Creates a new AnalysisModule
|
Modifier and Type | Method and Description |
---|---|
AnalysisRegistry |
buildRegistry()
Builds an
AnalysisRegistry from the current configuration. |
protected void |
configure()
Configures a
Binder via the exposed methods. |
void |
registerAnalyzer(java.lang.String name,
AnalysisModule.AnalysisProvider<AnalyzerProvider> analyzer)
Registers a new
AnalysisModule.AnalysisProvider to create
AnalyzerProvider instance per node as well as per index. |
void |
registerCharFilter(java.lang.String name,
AnalysisModule.AnalysisProvider<CharFilterFactory> charFilter)
Registers a new
AnalysisModule.AnalysisProvider to create
CharFilterFactory instance per node as well as per index. |
void |
registerHunspellDictionary(java.lang.String name,
org.apache.lucene.analysis.hunspell.Dictionary dictionary)
Registers a new hunspell
Dictionary that can be referenced by the given name in
hunspell analysis configuration. |
void |
registerTokenFilter(java.lang.String name,
AnalysisModule.AnalysisProvider<TokenFilterFactory> tokenFilter)
Registers a new
AnalysisModule.AnalysisProvider to create
TokenFilterFactory instance per node as well as per index. |
void |
registerTokenizer(java.lang.String name,
AnalysisModule.AnalysisProvider<TokenizerFactory> tokenizer)
Registers a new
AnalysisModule.AnalysisProvider to create
TokenizerFactory instance per node as well as per index. |
addError, addError, addError, bind, bind, bind, bindConstant, binder, bindListener, bindScope, configure, convertToTypes, currentStage, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding
public AnalysisModule(Environment environment)
public void registerCharFilter(java.lang.String name, AnalysisModule.AnalysisProvider<CharFilterFactory> charFilter)
AnalysisModule.AnalysisProvider
to create
CharFilterFactory
instance per node as well as per index.public void registerTokenFilter(java.lang.String name, AnalysisModule.AnalysisProvider<TokenFilterFactory> tokenFilter)
AnalysisModule.AnalysisProvider
to create
TokenFilterFactory
instance per node as well as per index.public void registerTokenizer(java.lang.String name, AnalysisModule.AnalysisProvider<TokenizerFactory> tokenizer)
AnalysisModule.AnalysisProvider
to create
TokenizerFactory
instance per node as well as per index.public void registerAnalyzer(java.lang.String name, AnalysisModule.AnalysisProvider<AnalyzerProvider> analyzer)
AnalysisModule.AnalysisProvider
to create
AnalyzerProvider
instance per node as well as per index.public void registerHunspellDictionary(java.lang.String name, org.apache.lucene.analysis.hunspell.Dictionary dictionary)
Dictionary
that can be referenced by the given name in
hunspell analysis configuration.protected void configure()
AbstractModule
Binder
via the exposed methods.configure
in class AbstractModule
public AnalysisRegistry buildRegistry() throws java.io.IOException
AnalysisRegistry
from the current configuration.java.io.IOException