详细描述一下 Elasticsearch 搜索的过程?
生活随笔
收集整理的這篇文章主要介紹了
详细描述一下 Elasticsearch 搜索的过程?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、搜索被執行成一個兩階段過程,我們稱之為 Query Then Fetch;
2、在初始查詢階段時,查詢會廣播到索引中每一個分片拷貝(主分片或者副本分
片)。 每個分片在本地執行搜索并構建一個匹配文檔的大小為 from + size 的
優先隊列。
PS:在搜索的時候是會查詢 Filesystem Cache 的,但是有部分數據還在 Memory
Buffer,所以搜索是近實時的。
3、每個分片返回各自優先隊列中 所有文檔的 ID 和排序值 給協調節點,它合并
這些值到自己的優先隊列中來產生一個全局排序后的結果列表。
4、接下來就是 取回階段,協調節點辨別出哪些文檔需要被取回并向相關的分片
提交多個 GET 請求。每個分片加載并 豐富 文檔,如果有需要的話,接著返回
文檔給協調節點。一旦所有的文檔都被取回了,協調節點返回結果給客戶端。
5、補充:Query Then Fetch 的搜索類型在文檔相關性打分的時候參考的是本分
片的數據,這樣在文檔數量較少的時候可能不夠準確,DFS Query Then Fetch 增
加了一個預查詢的處理,詢問 Term 和 Document frequency,這個評分更準確,
但是性能會變差。*
總結
以上是生活随笔為你收集整理的详细描述一下 Elasticsearch 搜索的过程?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyttsx3 快速上手之:语音合成播报
- 下一篇: 凹凸世界卡米尔资料图