Elasticsearch 6.5.3 复合查询实验记录

复合查询

把一些简单查询组合在一起实现更复杂的查询需求,除此之外符合查询还可以控制另外一个查询的行为。

constant_score query

可以包装一个其他类型的查询,并返回匹配过滤器中的查询条件且有相同评分的文档。

bool query

可以把任意多个简单的查询组合在一起,使用must、should、must_not、filter来表示简单查询之间的逻辑,每个选项都可以出现0到多次。

must相当于AND;should相当于OR;filter不评分,只起到过滤功能。

dis_max query

与bool查询有一定联系也有一定区别,dis_max query支持多并发查询,可返回与任意查询条件子句匹配的任何文档类型。只使用最佳匹配查询条件的分数。

function_score query

可以修改查询的文档得分,比如通过评分函数计算文档得分代价较高,可以改用过滤器加自定义评分函数的方式来取代传统的评分方式。使用时,用户需要定义一个查询和一至多个评分函数,评分函数会对查询到的每个文档分别计算评分。

boosting query

两个查询的评分进行调整的场景。

indices query

多个索引之间进行查询的场景。允许指定一个索引名字列表和内部查询。