1. 程式人生 > >ElasticSearch最佳入門實踐(四十八)_filter與query深入對比解密:相關度,效能

ElasticSearch最佳入門實踐(四十八)_filter與query深入對比解密:相關度,效能

1、filter 與 query 示例

先構建兩條資料
在這裡插入圖片描述

搜尋請求:年齡必須大於等於30,同時join_date必須是2018-01-01
在這裡插入圖片描述

2、filter與query對比大解密

filter,僅僅只是按照搜尋條件過濾出需要的資料而已,不計算任何相關度分數,對相關度沒有任何影響
query,會去計算每個document相對於搜尋條件的相關度,並按照相關度進行排序

一般來說,如果你是在進行搜尋,需要將最匹配搜尋條件的資料先返回,那麼用query;如果你只是要根據一些條件篩選出一部分資料,不關注其排序,那麼用filter
除非是你的這些搜尋條件,你希望越符合這些搜尋條件的document越排在前面返回,那麼這些搜尋條件要放在query中;如果你不希望一些搜尋條件來影響你的document排序,那麼就放在filter中即可

3、filter與query效能

filter,不需要計算相關度分數,不需要按照相關度分數進行排序,同時還有內建的自動cache最常使用filter的資料
query,相反,要計算相關度分數,按照分數進行排序,而且無法cache結果