Interface IndexAnalysisConfigurer
public interface IndexAnalysisConfigurer
Base interface for configurers of Elasticsearch analysis elements (analyzers, normalizers, etc).
Create Spring Bean that implements this interface.
Analysis elements can be configured inside configure(AnalysisConfigurationContext)
Example:
@Component
public class CustomIndexAnalysisConfigurer implements IndexAnalysisConfigurer {
@Override
public void configure(AnalysisConfigurationContext context) {
// Analyzer
context.defineAnalyzer("configured_builtin_analyzer")
.configureBuiltIn("standard")
.withParameter("max_token_length", 100)
.withParameter("stopwords", "_english_");
context.defineAnalyzer("custom_analyzer")
.createCustom()
.withTokenizer("whitespace")
.withCharacterFilters("html_strip")
.withTokenFilters("stop");
context.defineAnalyzer("analyzer_with_native_config")
.withNativeConfiguration(
"{" +
"\"type\": \"standard\"," +
" \"max_token_length\": 100," +
" \"stopwords\": \"_english_\"" +
"}"
);
// Normalizer
context.defineNormalizer("custom_normalizer")
.createCustom()
.withCharacterFilters("html_strip")
.withTokenFilters("lowercase");
context.defineNormalizer("normalizer_with_native_config")
.withNativeConfiguration(
"{" +
" \"type\": \"custom\"," +
" \"filter\": [" +
" \"lowercase\"," +
" \"asciifolding\"" +
" ]" +
"}"
);
// Tokenizer
context.defineTokenizer("configured_tokenizer")
.configureBuiltIn("whitespace")
.withParameter("max_token_length", 100);
context.defineTokenizer("tokenizer_with_native_config")
.withNativeConfiguration(
"{" +
" \"type\": \"standard\"," +
" \"max_token_length\": 100" +
"}"
);
// Character Filters
context.defineCharacterFilter("configured_char_filter")
.configureBuiltIn("html_strip")
.withParameter("escaped_tags", Arrays.asList("b", "i"));
context.defineCharacterFilter("char_filter_with_native_config")
.withNativeConfiguration(
"{" +
" \"type\": \"html_strip\"," +
" \"escaped_tags\": [" +
" \"b\"" +
" ]" +
"}"
);
// Token Filter
context.defineTokenFilter("configured_token_filter")
.configureBuiltIn("stop")
.withParameter("stopwords", "_russian_")
.withParameter("ignore_case", "true");
context.defineTokenFilter("filter_with_native_config")
.withNativeConfiguration(
"{" +
" \"type\": \"ngram\"," +
" \"min_gram\": 3," +
" \"max_gram\": 5" +
"}"
);
}
}
-
Method Summary
-
Method Details
-
configure
-