原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/compound-queries.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/compound-queries.html

复合查询 (compound queries)

复合查询包裹其他复合或叶子查询,要么组合它们的结果和分数以改变它们的行为,要么从 query 切换到 filter 上下文。

该组中的查询包括:

bool(布尔) 查询
用于组合多个叶子查询子句或复合查询子句的默认查询,如mustshouldmust_notfilter子句。 mustshould 子句将它们的分数组合在一起,且匹配的子句越多越好;而 must_notfilter 子句在 filter 上下文中执行。
boosting 查询
返回与 positive (肯定) 查询匹配的文档,但同时也会降低与 negative (否定) 查询匹配的文档的分数。
constant_score(常量分数) 查询
包裹另一个查询,但只在 filter 上下文中执行查询。 所有匹配的文档都被赋予相同的“常数”_score
dis_max 查询
接受多个查询并返回与任何查询子句匹配的任何文档的查询。 虽然 bool 查询组合了所有匹配查询的分数,但是 dis_max 查询使用单个最佳匹配查询子句的分数。
function_score 查询
使用函数修改主查询返回的分数,以考虑流行度(popularity)、新近度(recency)、距离(distance)或使用脚本(script)实现的自定义算法等因素。