Lucene 里面的 query 与filter的 区别 和各自的试用场景
query 与 filter 在本质上讲都是为了获取匹配条件的结构,但是在具体应用过程中应该如何选择 和 理解呢?求大神指教
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
query 与 filter 在本质上讲都是为了获取匹配条件的结构,但是在具体应用过程中应该如何选择 和 理解呢?求大神指教
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
filter query 通常用在經常要過濾的類別資料,而且因為他的會有快取 Filter cache 所以他的效能比較好。
main query 他會匹配整個 Lucene 的 index ,找出所有相關的 relevance 資料集。
所以我們經常 filter 及 main query 搭配使用,如的查詢會經常過去某項產品的資料,而產品又分地區別,
此時你可以使用如:
main query : product_name:intel 5500u
filter query : locale:上海
因 locale 應該是最常被使用來做分類過濾,此時使用 filter query 後,可以加速未來的查詢。
最主要的区别就是, query需要score和rank, filter不需要. 所以如果只考虑匹配, 不考虑相关性, filter会快很多