elasticsearch-java
elasticsearch-java copied to clipboard
Error deserializing co.elastic.clients.elasticsearch._types.analysis.CharFilterDefinition: Unknown 'type' value: 'stconvert'
Description
I am trying to create an index using a java client, and I have installed the stconvert plugin in the elasticsearch cluster (a plugin that provides replacement for both traditional and simplified Chinese), and I am getting this error during the index creation process.
My code implementation:
Reader stconvertJson = new StringReader(
"{\"type\":\"stconvert\",\"delimiter\":\"#\",\"keep_both\":false,\"convert_type\":\"t2s\"}");
Map<String, CharFilter> charFilterMap = new HashMap<>();
charFilterMap.put("tsconvert", new CharFilter.Builder()
.definition(new CharFilterDefinition.Builder().withJson(stconvertJson).build()).build());
CreateIndexRequest c = new CreateIndexRequest.Builder()
.index(index)
.aliases(aliases, a -> a
.isWriteIndex(true))
.settings(s -> s
.analysis(a -> a
.charFilter(charFilterMap) //this
.filter(filterMap)
.tokenizer(tokenizerMap)
.analyzer(analyzerMap))
.numberOfShards("1")
.numberOfReplicas("1"))
.mappings(typeMapping)
.build();
createIndexResponse = elasticClient.indices().create(c);
found that this is not feasible, and also in order to be able to pass serialization, I also tried to implement CharFilterDefinitionVariant to do it, similar to HtmlStripCharFilter, but eventually failed because CharFilterDefinition.Kind could not satisfy me.
So I was wondering if elasticsearch has additional plugins to build index in the java client, how should I go about doing that or inherit the implementation code?