我正在尝试从ElasticSearch 2转换到5或6.我认为我想直接跳到6.1.1并使用RestHighLevelClient,因为它比我使用的现有传输客户端更接近等级休息客户。
但是,我正在遇到问题作为集成测试的一部分,我正在创建索引并插入特定数据,因此我知道我的查询是正确的。我似乎无法在高级客户端中这样做。特别是,我希望能够致电:
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost(host, port)))
client.indices()
.preparePutMapping(databaseName)
.setType(tableName).etc....
但是,client.indices()返回没有preparePutMapping()的org.elasticsearch.client.IndicesClient(来自org.elasticsearch.client:elasticsearch-rest-high-level-client:6.1.1)。我需要一个org.elasticsearch.client.IndicesAdminClient(来自org.elasticsearch:elasticsearch:6.1.1)。我无法从RestHighLevelClient或RestClient中弄清楚如何获得它。
我运气不好吗?这只是过渡性的痛苦还没有实现吗?或者更永久的东西?
答案 0 :(得分:0)
client.admin().indices()
.preparePutMapping(databaseName)
.setType(tableName)
...
看起来你需要的只是一个额外的.admin()
。