【问题标题】:Elasticsearch java client update by query with wait for completionElasticsearch java客户端通过查询更新并等待完成
【发布时间】:2018-03-16 04:29:01
【问题描述】:

Elasticsearch 5.6 版

我正在使用 elasticsearch 本机传输客户端和 UpdateByQueryRequestBuilder 来执行 update by query

我想异步执行此操作并使用任务 api 跟踪进度。文档显示参数 wait_for_completion=false 正是我想要的,因为我看不到对 java 客户端的支持。有没有办法设置它并取回任务ID?

【问题讨论】:

  • 你找到解决方案了吗?
  • 解决方案或变通方法的任何更新?

标签: java elasticsearch


【解决方案1】:

使用本机传输客户端来检索任务 api 响应,您必须像这样执行请求:

UpdateByQueryRequestBuilder u = UpdateByQueryAction.INSTANCE.newRequestBuilder(client);
BulkIndexByScrollResponse r = u.source("source").filter(matchQuery("field", "value")).get();

响应有两个失败列表和可以使用获取计数的状态成员。该状态与您可以从任务管理 API 获得的状态完全相同。

仅在缺少依赖项的情况下,尝试导入此 maven 依赖项:

    <dependency>
    <groupId>org.elasticsearch.module</groupId>
    <artifactId>reindex</artifactId>
    <version>x.x.x</version>
    </dependency>

并在客户端设置中添加调用:

clientBuilder.addPlugin(ReindexPlugin.class);

您可以找到更多信息here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多