常量分数查询弹性搜索提升

ili*_*uve 7 information-retrieval elasticsearch

我对弹性搜索中的常量得分查询的理解是,提升因子将被指定为每个匹配查询的得分.该文件说:

包含过滤器或其他查询的查询,只返回等于过滤器中每个文档的查询提升的常量分数.

但是,当我发送此查询时:

"query": {
    "constant_score": {
        "filter": {
            "term": {
                "source": "BBC"
            }
        },
        "boost": 3
    }
},
"fields": ["title", "source"]
Run Code Online (Sandbox Code Playgroud)

所有匹配的文件得分为1?!我无法弄清楚我做错了什么,并且还尝试使用查询而不是在constant_score中过滤.

小智 3

分数仅与给定结果集中的所有其他分数相关,因此所有内容的分数均为 3 的结果集与所有内容的分数均为 1 的结果集相同。

实际上,相关性 _score 的唯一目的是按照正确的顺序对当前查询的结果进行排序。您不应尝试比较不同查询的相关性分数。- Elasticsearch 指南

常数分数要么被忽略,因为它没有与另一个查询组合,要么它正在被标准化。正如@keety所说,检查解释的输出以准确了解发生了什么。