14.refresh操作
文章目錄
- 1. refresh 簡介
- 1. true或者空字符串
- 2. wait_for
- 3. false (the default)
- 2.如何選擇設置
1. refresh 簡介
The Index, Update, Delete, and Bulk APIs 支持refresh操作。控制這些api對應的請求所做的更改對搜索可見。
refresh可以設置的值有
1. true或者空字符串
在操作發生后立即刷新相關的主要和副本分片(不是整個索引),以便更新的文檔立即顯示在搜索結果中。只有仔細思考和驗證才能設置以免導致性能不佳。
2. wait_for
這個設置為true的話,如果使用refresh的話,當前請求不會主動觸發refresh,而是等待系統index.refresh_interval 設置的后臺refresh之后才會返回請求。
Wait for the changes made by the request to be made visible by a refresh before replying. This doesn’t force an immediate refresh, rather, it waits for a refresh to happen. Elasticsearch automatically refreshes shards that have changed every index.refresh_interval which defaults to one second. That setting is dynamic. Calling the Refresh API or setting refresh to true on any of the APIs that support it will also cause a refresh, in turn causing already running requests with refresh=wait_for to return.
3. false (the default)
false也是默認值,不會進行refresh操作
2.如何選擇設置
除非你有一個很好的理由等待修改變得可見,不然的話就盡量使用refresh=false,因為這是默認值,URL不傳refresh即可。
如果你一定要讓所做的修改請求同步可見,那么您必須在對Elasticsearch(true)進行更多的負載與更長的等待響應(wait_for)之間進行選擇。這里有幾點應該告訴這個決定:
下面的put操作會主動觸發refresh,以便于內容在后面的search中立即可見
PUT /test/_doc/1?refresh {"test": "test"} PUT /test/_doc/2?refresh=true {"test": "test"}下面的操作并不保證其在后面的search中立即可見
PUT /test/_doc/3 {"test": "test"} PUT /test/_doc/4?refresh=false {"test": "test"}下面的請求不會觸發refresh,但是會等待別的情況觸發refresh之后返回
PUT /test/_doc/4?refresh=wait_for {"test": "test"}總結
以上是生活随笔為你收集整理的14.refresh操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 13.multi-term-vector
- 下一篇: 15.concurrent-contro