I’m migrating our app to new ElastisearchClient for Java. We have few mapping/setting/properties configurations created in JSON files like here Elastic mapping source 7.15. Is it still possible to map sources as in these examples? Or is it fully migrated to:
builders and functional patterns
Currently, we do it like this (RestHighLevelClient 7.14 Elastic):
String mapping = "mappings/file.json";
String source = StringUtils.toString(new ClassPathResource(mapping).getInputStream(); //Converting to acceptable json
CreateIndex createIndexRequest = new CreateIndexRequest(name);
createIndexRequest.source(source, XContentType.JSON);
Advertisement
Answer
It’s possible from 7.17.0 version – Documentation
CreateIndexRequest req = CreateIndexRequest.of(b -> b
.index("some-index")
.withJson(input) //Insert here loaded json mapping
);