Elasticsearch版本:5.1.1
操作系统版本:centos 7
问题描述包括预期行为与实际行为: ES 5.1版本不支持按查询删除插件。 所以我需要更改javaAPI代码。
以下代码来自之前的2.3版本。
new DeleteByQueryRequestBuilder(ElasticConnector.getInstance().getJavaClient(), DeleteByQueryAction.INSTANCE)
.setIndices(GLOBAL_ID)
.setTypes(MessageService.DEVICE)
.setQuery(QueryBuilders.boolQuery().should(QueryBuilders.termQuery("user_id", user_id))
.should(QueryBuilders.termQuery("device_id", device_id)
.mustNot(QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("user_id", user_id))
.must(QueryBuilders.termQuery("device_id", device_id)) ))
.execute().actionGet();
此代码存在
问题DeleteByQueryRequestBuilder无法解析为类型
如何更改?
答案 0 :(得分:0)
我认为这可以解决您的问题
BulkIndexByScrollResponse response =
DeleteByQueryAction.INSTANCE
.newRequestBuilder(ESClient)
.filter(yourQuery)
.source(your index)
.get();
问候