跳到主要内容

最佳匹配 dis_max

算分公式

如果文档匹配多个子句,则 dis_max 查询计算文档的相关性分数如下:

总分 = 最佳匹配子句分数 + sum(其他匹配子句分数) * tie_breaker

GET /_search
{
"query": {
"dis_max" : {
"tie_breaker" : 0.7,
"queries" : [
{ "term": { "title": "Quick pets" } },
{ "term": { "body": "Quick pets" } }
]
}
}
}
  1. 从得分最高的匹配子句中获取相关性得分。
  2. 将任何其他匹配子句的分数乘以 tie_breaker 值。
  3. 将最高分加到相乘的分数上获得最后得分。

如果 tie_breaker 值大于 0.0,则所有匹配的子句都有效,但得分最高的子句最重要

参数是否必选类型说明
queries必选项查询子句数组包含一个或多个查询子句。如果一个文档匹配多个查询子句,dismax 会取最高的子句相关性分数。
tie_breaker可选项float (取值范围:0 到 1.0 之间的浮点数)增益系数 - 用于增加最高分子句外的其他匹配子句的文档相关性分数。默认为 0.0。