query与filter的区别
filter:可以简单的理解为Filter就是数据库中的查询语句, 结果是确定的。即满足查询条件就返回, 不满足就不返回.
query:而Query则是文档相关性的查询, 他总会返回数据(一般情况下, 只是匹配度不高), 而且是按照相关性从大到小排序.
总结
1、因此filter的查询是没有评分的,而query的查询是有评分的
2、filter有相应的缓存机制,可以提高查询效率,并且因为filter不计算相关性评分,所以查询速度更快
query与filter如何配合
利用filter的高性能快速过滤大部分数据,再利用query来精确查询所需要的数据。使用query+filter既能保证速度又能保证结果的相关性
一个不太形象的比喻。一个渣男要找对象,那么他的对象就必须是女的, 这个时候如果有一个人群的集合,就需要用Filter把全部的女性找出来;晒完之后,再根据漂亮程度排个序,这里的漂亮程度就可以用Query来表示。身材如何,身高如何,三维,腿,脸等,都可以作为Query的查询维度并给定参数。这时,不管这个集合中的女性是否比外界其他的女性漂亮多少,总会返回给你一个结果。但你是否满意就得另说了。
标签:filter,查询,Filter,相关性,query,Query,ES From: https://www.cnblogs.com/kkbk/p/17701832.html