Elasticsearch 查询语句:must、filter、should、must_not 区别解析
在 Elasticsearch 搜索中,'must'、'filter'、'should' 和 'must_not' 是用于构建查询语句的关键字。
-
'must':表示必须满足的条件,即必须匹配的查询条件。它们对结果的匹配性有影响,匹配的文档必须满足 'must' 中指定的所有条件。
-
'filter':表示过滤条件,用于筛选文档,但不会影响评分。它们对结果的匹配性没有影响,只用于过滤文档。过滤条件通常用于对不需要评分的条件进行筛选,以提高查询性能。
-
'should':表示可选的条件,即可选的查询条件。它们对结果的匹配性有影响,但不会影响必须匹配的条件。'should' 中的条件可以用于提高文档的相关性评分,但即使不满足 'should' 中的条件,文档仍然可以被返回。
-
'must_not':表示必须不满足的条件,即必须不匹配的查询条件。它们对结果的匹配性有影响,匹配的文档不能满足 'must_not' 中指定的条件。
综上所述,'must'、'filter'、'should' 和 'must_not' 关键字的区别在于它们对查询结果的匹配性和评分的影响。'must' 和 'must_not' 是必须满足的条件,'filter' 用于过滤文档,'should' 是可选的条件。
原文地址: https://www.cveoy.top/t/topic/JdT 著作权归作者所有。请勿转载和采集!