14.refresh操作
文章目錄
- 1. refresh 簡介
- 1. true或者空字符串
- 2. wait_for
- 3. false (the default)
- 2.如何選擇設(shè)置
1. refresh 簡介
The Index, Update, Delete, and Bulk APIs 支持refresh操作。控制這些api對(duì)應(yīng)的請(qǐng)求所做的更改對(duì)搜索可見。
refresh可以設(shè)置的值有
1. true或者空字符串
在操作發(fā)生后立即刷新相關(guān)的主要和副本分片(不是整個(gè)索引),以便更新的文檔立即顯示在搜索結(jié)果中。只有仔細(xì)思考和驗(yàn)證才能設(shè)置以免導(dǎo)致性能不佳。
2. wait_for
這個(gè)設(shè)置為true的話,如果使用refresh的話,當(dāng)前請(qǐng)求不會(huì)主動(dòng)觸發(fā)refresh,而是等待系統(tǒng)index.refresh_interval 設(shè)置的后臺(tái)refresh之后才會(huì)返回請(qǐng)求。
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也是默認(rèn)值,不會(huì)進(jìn)行refresh操作
2.如何選擇設(shè)置
除非你有一個(gè)很好的理由等待修改變得可見,不然的話就盡量使用refresh=false,因?yàn)檫@是默認(rèn)值,URL不傳refresh即可。
如果你一定要讓所做的修改請(qǐng)求同步可見,那么您必須在對(duì)Elasticsearch(true)進(jìn)行更多的負(fù)載與更長的等待響應(yīng)(wait_for)之間進(jìn)行選擇。這里有幾點(diǎn)應(yīng)該告訴這個(gè)決定:
下面的put操作會(huì)主動(dòng)觸發(fā)refresh,以便于內(nèi)容在后面的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"}下面的請(qǐng)求不會(huì)觸發(fā)refresh,但是會(huì)等待別的情況觸發(fā)refresh之后返回
PUT /test/_doc/4?refresh=wait_for {"test": "test"}總結(jié)
以上是生活随笔為你收集整理的14.refresh操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 13.multi-term-vector
- 下一篇: 15.concurrent-contro