[英]ElasticSearch 6 High Level Rest Client preparePutMapping
[英]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.