复合查询简介
复合查询对其他复合查询或叶查询进行包装,以合并其结果和得分、改变其行为或从query上下文切换到filter上下文。
复合查询包括:
bool 查询
用于组合多个叶子或复合查询子句(如 must、should、must_not 或 filter 子句)的默认查询。must
和 should
子句的得分合并在一起–匹配的子句越多越好,而 must_not
和 filter
子句则在 filter 上下文中执行。
boosting 查询
返回与positive
查询匹配的文档,同时降低与negative
查询匹配的文档的相关性得分。
constant_score 查询
封装过滤查询,所有匹配的文档都会得到相同的 “常量”_score。
dis_max 查询
一种可接受多个查询的查询,可返回与任何一个查询子句匹配的文档。bool 查询综合了所有匹配查询的得分,而 dis_max 查询则使用单个最佳匹配查询子句的得分。
function_score 查询
使用函数修改主查询返回的分数,以考虑流行度、重复性、距离等因素,或使用脚本执行自定义算法。