原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/compound-queries.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/compound-queries.html
本地英文版地址: ../en/compound-queries.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
复合查询包裹其他复合或叶子查询,要么组合它们的结果和分数以改变它们的行为,要么从 query 切换到 filter 上下文。
该组中的查询包括:
-
bool(布尔)
查询 -
用于组合多个叶子查询子句或复合查询子句的默认查询,如
must
、should
、must_not
或filter
子句。must
和should
子句将它们的分数组合在一起,且匹配的子句越多越好;而must_not
和filter
子句在 filter 上下文中执行。 -
boosting
查询 -
返回与
positive (肯定)
查询匹配的文档,但同时也会降低与negative (否定)
查询匹配的文档的分数。 -
constant_score(常量分数)
查询 -
包裹另一个查询,但只在 filter 上下文中执行查询。
所有匹配的文档都被赋予相同的“常数”
_score
。 -
dis_max
查询 -
接受多个查询并返回与任何查询子句匹配的任何文档的查询。
虽然
bool
查询组合了所有匹配查询的分数,但是dis_max
查询使用单个最佳匹配查询子句的分数。 -
function_score
查询 - 使用函数修改主查询返回的分数,以考虑流行度(popularity)、新近度(recency)、距离(distance)或使用脚本(script)实现的自定义算法等因素。