Elasticsearch(ES)(版本7.x)數據更新后刷新策略RefreshPolicy


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);// 立即更新

結束

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM