1.概述
转载:ElasticSearch中Filter和Query的异同
查询虽然包含这两种,但是查询在不同的执行环境下,操作还是不一样的。
2.Query与Filter
查询在Query查询上下文和Filter过滤器上下文中,执行的操作是不一样的:
2.1 Query查询上下文
在查询上下文中,查询会回答这个问题——“这个文档匹不匹配这个查询,它的相关度高么?”
如何验证匹配很好理解,如何计算相关度呢?之前说过,ES中索引的数据都会存储一个_score分值,分值越高就代表越匹配。另外关于某个搜索的分值计算还是很复杂的,因此也需要一定的时间。
查询上下文 是在 使用query进行查询时的执行环境,比如使用search的时候。
2.2 Filter过滤器上下文
在过滤器上下文中,查询会回答这个问题——“这个文档匹不匹配?”
答案很简单,是或者不是。它不会去计算