簡體   English   中英

通過查詢更新Elasticsearch Java客戶端並等待完成

[英]Elasticsearch java client update by query with wait for completion

Elasticsearch 5.6版

我正在使用UpdateByQueryRequestBuilder本機傳輸客戶端和UpdateByQueryRequestBuilder 通過query執行更新

我想異步執行此操作並跟蹤任務api的進度。 文檔顯示,參數wait_for_completion = false正是我想要的,因為我在Java客戶端上看不到對的支持。 有沒有一種方法可以設置此項並獲取任務ID?

使用本機傳輸客戶端來檢索任務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);

您可以在此處找到其他信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM