elasticsearch 如何通过提供源代码使用新的Java API客户端创建索引

lx0bsm1f  于 2022-12-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(136)

我正在将代码从Java高级REST客户端迁移到Java API客户端,因为Rest客户端在elasticsearch 7.15中被弃用。(设置和Map)作为一个json文件。通过REST API,最新的elasticsearch支持相同的功能。但是在新的Java API客户端中,CreateIndexRequest没有提供源的选项。如何操作?将Map迁移到Java(使用IndexSettings和TypeMapping)不是一个选项。

6ojccjat

6ojccjat1#

要使用JSON文件创建索引,我找到了以下方法:

ElasticsearchClient client = new ElasticsearchClient(
                new RestClientTransport(
                    RestClient.builder(new HttpHost("localhost", 9200, "http")).build(),
                    new JacksonJsonpMapper()));

String mappingPath = "yourPath/yourJsonFile.json";
 
JsonpMapper mapper = client._transport().jsonpMapper();
JsonParser parser = mapper.jsonProvider()
            .createParser(new StringReader(
                Files.toString(new ClassPathResource(mappingPath).getFile(), Charsets.UTF_8)));

client.indices()
    .create(createIndexRequest -> createIndexRequest.index(indexName)
        .mappings(TypeMapping._DESERIALIZER.deserialize(parser, mapper)));

然后我尝试对BulkRequest做同样的事情,但我没有找到好的方法。

相关问题