今天我們來研究ES的讀操作原理
query_then_fetch
的模式,也是一種兩階段查詢
dfs_query_then_fetch
query_then_fetch
讀操作流程:
coordinator
接收到client的請求preference
replica shard
local search
,並建立local priority queue
global priority queue
整體流程如下圖:
圖源:
https://www.elastic.co/pdf/elasticsearch-sizing-and-capacity-planning.pdf
我們這邊延伸query與fetch流程:
Query phase:
search context
cache
,如果有cache就可以直接拿結果。並且如果該查詢能建立cache,也會在查詢後建立cachecollector
MinimumScoreCollector
:過濾掉相關分數低於設定的文檔Fetch phase:
以上就是讀操作相關的原理
如果想要知道更多更細節的部分,相當建議去看我附上的資料來源
可以收穫更多
有關請求原理就在這邊告一段落
明天我們會進到生命週期的單元
參考資料
讀原理:
https://pdai.tech/md/db/nosql-es/elasticsearch-y-th-4.html
preference:
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-search.html#search-preference