如何在弹性搜索bool查询中解释必须和过滤器?



嗨,我只是新的ES想知道,这种类型的查询就像一个&&查询呢?必须,,过滤器

query : {
must : { query if a field exists },
filter : { query to filter some results}
}
}```

ElasticSearch文档确实非常好,不应该被忽视。

https://www.elastic.co/guide/en/elasticsearch//reference/current/query-filter-context.html

这就回答了你的问题,我在这里就不提供细节了。

对must下的查询部分进行评分,在搜索结果的排序中考虑匹配的质量,计算并返回一个分数值,表示每个匹配的质量。

过滤器上下文下的查询部分不进行任何评分,所有匹配都被认为是相等的,并被视为是或否。

因为过滤器查询是"是"或"否",所以首先执行,所以must查询只在匹配过滤器部分的文档上执行。如果查询中有不需要评分的部分,例如日期或价格范围,则过滤器上下文将大大提高查询的性能。如果您的查询都不需要评分,则将其全部放在过滤器上下文中将提高性能。

最新更新