Elasticsearch——深入了解Search的運行機制

Search的運行機制

Search執(zhí)行的時候分為兩個運行步驟:

  • Query階段
  • Fetch階段

Query階段

Fetch階段

相關(guān)性算分問題

  • 相關(guān)性算分在shard與shard之間是相互獨立的,也就意味著同一個Term的IDF等值在不同shard上是不同的,文檔的相關(guān)性算分和它所處的shard相關(guān)
  • 在文檔數(shù)量不多時,會導(dǎo)致相關(guān)性算分嚴(yán)重不準(zhǔn)的情況發(fā)生

解決思路有兩個:

  • 一是設(shè)置分片數(shù)為1個,從根本上排除問題,在文檔數(shù)量不多的時候可以考慮該方案,比如百萬到千萬級別的數(shù)量。
  • 二是使用DFS Query-Then-Fetch查詢方式


排序

es默認(rèn)會采用相關(guān)性算分排序,用戶可以通過設(shè)定sorting參數(shù)來自行設(shè)定排序規(guī)則


分頁與遍歷

es提供了3種方式來解決分頁與遍歷的問題:

  • from/size
  • scroll
  • search_after
from/size
scroll
search_after
應(yīng)用場景

參考:
http://www.lxweimin.com/p/b57229a200aa

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容