ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 复合查询家族 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.0/compound-queries.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/compound-queries.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4882469](http://www.apache.wiki/pages/viewpage.action?pageId=4882469) 贡献者 : [@蓝色飞扬](http://www.apache.wiki/display/~lixiaoqing) [<< Ids Query](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-ids-query.html)                                                                                                                      [Constant Score Query >>](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-constant-score-query.html) * * * 复合查询用来包装其他复合或者叶子查询,一方面可综合其结果和分数,从而改变它的行为,另一方面可从查询切换到过滤器上下文。此类查询包含: ## [constant_score 查询](http://www.apache.wiki/pages/viewpage.action?pageId=4882886) 这是一个包装其他查询的查询,并且在过滤器上下文中执行。与此查询匹配的所有文件都需要返回相同的“常量” **__score_** 。 ## [bool 查询](http://www.apache.wiki/pages/viewpage.action?pageId=4882896) 组合多个叶子并发查询或复合查询条件的默认查询类型,例如**must**, **should**, **must_not**, 以及 **filter** 条件。 在 **must** 和 **should** 子句他们的分数相结合-匹配条件越多,预期越好-而 **must_not** 和 **filter** 子句在过滤器上下文中执行。 ## [dis_max 查询](http://www.apache.wiki/pages/viewpage.action?pageId=4882902) 支持多并发查询的查询,并可返回与任意查询条件子句匹配的任何文档类型。与 **bool** 查询可以将所有匹配查询的分数相结合使用的方式不同的是,**dis_max** 查询只使用最佳匹配查询条件的分数。 ## [function_score 查询](http://www.apache.wiki/pages/viewpage.action?pageId=4882904) 使用函数修改主查询返回的分数,以考虑诸如流行度,新近度,距离或使用脚本实现的自定义算法等因素。 ## [boosting 查询](http://www.apache.wiki/pages/viewpage.action?pageId=4882906) 返回匹配 **positive** 查询的文档,并且当减少文档的分数时其结果也匹配 **negative** 查询。 ## [indices 查询](http://www.apache.wiki/pages/viewpage.action?pageId=4882908) 对指定的索引执行一个查询,对其他索引执行另一个查询。 * * * [<< Ids Query](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-ids-query.html) [Constant Score Query >>](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-constant-score-query.html)