簡體   English   中英

Elasticsearch 高級 REST 客戶端 - 索引有延遲

[英]Elasticsearch high level REST client - Indexing has latency

我們最終開始使用高級別的 REST 客戶端,從后端工程的角度簡化查詢的開發。 對於索引,我們使用client.update(request, RequestOptions.DEFAULT)以便創建新文檔並修改現有文檔。

我們看到的問題是,索引被延遲了,幾乎是 5 分鍾。 我看到他們在內部使用異步 http 調用。 但這不應該花這么長時間,我在圖書館里找了一些時間選項,沒有找到任何東西。 我是否缺少任何東西或缺少官方文檔?

由於refresh_interval: 1在您的索引設置中,這意味着它永遠不會刷新,除非您手動執行,這就是為什么您在更新后看不到數據的原因。

您在這里有三個選擇:

A. 您可以使用refresh=true (或refresh=wait_for )參數調用_update端點,以確保在更新后立即刷新索引。

B. 您可以在索引設置中簡單地設置refresh_interval: 1s (或任何其他對您有意義的持續時間),以確保索引定期自動刷新。

C。 您可以在您認為合適的時候顯式調用索引上的index/_refresh來刷新它。

選項 B 在大多數用例中通常是有意義的。

關於使用 refresh wait_for的一些參考資料,但我很難找到在 rest 高級客戶端中究竟需要做什么。 對於所有正在搜索此答案的人:

   IndexRequest request = new IndexRequest(index, DOC_TYPE, id);
   request.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL);

暫無
暫無

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

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