elasticsearch 5.1 java api DeleteByQuery

时间:2017-01-04 02:08:31

标签: elasticsearch-java-api elasticsearch-5

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无法解析为类型

如何更改?

1 个答案:

答案 0 :(得分:0)

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

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

问候