ijaxahmed
(Ijaz Ahmed)
July 29, 2022, 3:42pm
5
Thank you so much @RabBit_BR , its a great help, Much appreciated
However the code is missing "normalizer", here i add to it
RabBit_BR:
TokenFilterDefinition tokenFilterDefinition = new TokenFilterDefinition.Builder()
.shingle(ShingleTokenFilter.of(s ->
s.maxShingleSize("3").minShingleSize("2")
))
.build();
TokenFilter tokenFilter = new TokenFilter.Builder()
.definition(tokenFilterDefinition)
.build();
CustomAnalyzer customAnalyzer = new CustomAnalyzer.Builder()
.tokenizer("standard")
.filter("lowercase", "my_filter")
.build();
Analyzer analyzer = new Analyzer.Builder()
.custom(customAnalyzer)
.build();
CustomNormalizer customNormalizer = new CustomNormalizer.Builder()
.filter("lowercase")
.build();
Normalizer normalizer = new Normalizer.Builder()
.custom(customNormalizer)
.build();
IndexSettingsAnalysis indexAnalyzers = new IndexSettingsAnalysis.Builder()
.filter("my_filter", tokenFilter)
.analyzer(Map.of("my_analyzer", analyzer))
.normalizer(Map.of("my_lowercase",normalizer))
.build();
client.indices()
.create(createIndexBuilder -> createIndexBuilder
.settings(builder -> builder
.numberOfReplicas("3")
.numberOfShards("3")
.analysis(indexAnalyzers)
).index("test_analyzer"));
1 Like