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)性算分嚴重不準的情況發(fā)生
解決思路有兩個:
- 一是設(shè)置分片數(shù)為1個,從根本上排除問題入篮,在文檔數(shù)量不多的時候可以考慮該方案陈瘦,比如百萬到千萬級別的數(shù)量。
-
二是使用DFS Query-Then-Fetch查詢方式
排序
es默認會采用相關(guān)性算分排序潮售,用戶可以通過設(shè)定sorting參數(shù)來自行設(shè)定排序規(guī)則
分頁與遍歷
es提供了3種方式來解決分頁與遍歷的問題:
- from/size
- scroll
- search_after