【问题标题】:elasticsearch 5.1 java api DeleteByQueryelasticsearch 5.1 java api DeleteByQuery
【发布时间】:2017-01-04 02:08:31
【问题描述】:

Elasticsearch 版本: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 无法解析为类型

我该如何改变?

【问题讨论】:

    标签: elasticsearch-java-api elasticsearch-5


    【解决方案1】:

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

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

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多