filter與query對比大解密
filter,僅僅只是按照搜索條件過濾出需要的數據而已,不計算任何相關度分數,對相關度沒有任何影響
query,會去計算每個document相對於搜索條件的相關度,並按照相關度進行排序
一般來說,如果你是在進行搜索,需要將最匹配搜索條件的數據先返回,那么用query;如果你只是要根據一些條件篩選出一部分數據,不關注其排序,那么用filter
除非是你的這些搜索條件,你希望越符合這些搜索條件的document越排在前面返回,那么這些搜索條件要放在query中;如果你不希望一些搜索條件來影響你的document排序,那么就放在filter中即可
filter與query性能
filter,不需要計算相關度分數,不需要按照相關度分數進行排序,同時還有內置的自動cache最常使用filter的數據
query,相反,要計算相關度分數,按照分數進行排序,而且無法cache結果
