0

弹性搜索版本:5.1.1

操作系统版本:centos 7

问题描述,包括预期行为与实际行为:ES 5.1 版本不支持 delete-by-query 插件。所以我需要更改 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 无法解析为类型

我该如何改变?

4

1 回答 1

0

我认为这可以解决您的问题

BulkIndexByScrollResponse response =
  DeleteByQueryAction.INSTANCE
    .newRequestBuilder(ESClient)
    .filter(yourQuery)
    .source(your index)
    .get();

问候

于 2017-02-22T09:19:40.550 回答