Hi, I'm migrating from elastic client 7.5.2 to 8.2. From HLRC to RestClient
I used to create Index template like this:
PutIndexTemplateRequest request = new PutIndexTemplateRequest(templateName);
request.source(template, XContentType.JSON);
AcknowledgedResponse putTemplateResponse = null;
try {
putTemplateResponse = restClient.indices().putTemplate(request, RequestOptions.DEFAULT);
putTemplateResponse.isAcknowledged();
return putTemplateResponse.isAcknowledged();
} catch (IOException e) {
log.error(e);
}
Questions:
-
What is difference between PutTemplateRequest (java-client 8.2.0 API) and PutIndexTemplateRequest (java-client 8.2.0 API) ?
I see both doing same. -
I'm using PutTemplateRequest (java-client 8.2.0 API)
and my template creation fails. I'm usingwithJson
to pass template json.
Error:
[es/indices.put_template] failed: [mapper_parsing_exception] Failed to parse mapping: dynamic template [remark] has invalid content [{"path_match":"*.*remark*","mapping":{"copy_to":["all"],"type":"object"}}], attempted to validate it with the following match_mapping_type: [object, string, long, double, boolean, date, binary]
2.a What's wrong with the request?
2.b I tried in Kibana dev tools with same JSON... PUT /_template/eua-cdb1_core_efk_8
It is success. How come ??
One Last Question
It says #! Legacy index templates are deprecated in favor of composable templates.
Which latest Java method should we use ?
**NOTE: Some template creation got success with similar JSON structure.
Please help me with the information or examples