Elasticsearch(ES)(版本7.x)數據更新后刷新策略RefreshPolicy
介紹:
ES數據寫入后,默認1s后才會被搜索到(refresh_interval為1);
這樣可能是考慮到性能問題,畢竟實時IO 消耗較多資源
造成的現象:
例如一個索引現在有100個文檔,當新增一個文檔時,立即查詢,顯示數量為100,並不為101
例如當修改一個文檔數據后,立即查詢的結果為上次文檔的數據,並不為最新數據
刷新策略RefreshPolicy:
IMMEDIATE:
- 請求提交數據后,立即進行數據刷新,再結束請求
- 優點:實時性高、操作延時短
- 缺點:資源消耗高
WAIT_UNTIL:
- 請求提交數據后,等待數據完成刷新(1s),再結束請求
- 優點:實時性高、操作延時長
- 缺點:資源消耗低
NONE:(默認策略)
- 請求提交數據后,不等待數據刷新,直接結束請求
- 優點:操作延時短、資源消耗低
- 缺點:實時性低
支持的接口:
刪除:DeleteRequestBuilder
新增:IndexRequestBuilder
更新:UpdateRequestBuilder
批量:BulkRequestBuilder
用法:(elasticsearch-rest-high-level-client)
requestBuilder.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);// 立即更新
結束