叶子Query语句
在特定的字段中检索特定的关键词,比如match, term, range等。
组合Query语句
通过逻辑关系运算将叶子Query语句或者组合Query语句再组合。比如bool, dis_max。
改变叶子Query语句或者组合Query语句的行为。比如constant_score。
Query
Query上下文解决的是"How well does this document match this query clause?"的问题,会计算文档和关键词的相关性打分。如果在DLS中有query关键字,则说明是一个Query上下文。
Filter
Filter上下文解决的是"Does this document match this query clause?"的问题。不会计算相关性打分,只会判断yes或者no。如果在DSL中有filter关键字,则说明是一个Filter上下文。
bool 检索
常用组合Query语句的关键字,包含must, should, must_not, filter四种逻辑关系。其中,must和should将子query的打分混合运算得到最终得分,而must_not和filter则作为Filter上下文来过滤文档。
boosting 检索
主要用来将命中positive子句的文档返回,同时将命中negative子句文档的打分降低。包含postitive,negative,negative_boost关键字。
constant_score 检索
针对filter语句,返回固定打分的命中文档。包含两个关键字filter, boost。
dis_max 检索
返回命中至少一个字句的文档。如果一个文档命中了多个字句,则最终打分由最高分和其他分*tie_breaker的和来决定。包含两个关键字queries, tie_breaker
function_score 检索
主要用来对命中的文档进行打分。包含query关键字和一个或多个function。每个命中的文档都会由打分函数来计算分数。
原文:https://www.cnblogs.com/supertc/p/14032107.html