为什么带通配符查询的Elasticsearch始终为1.0?

时间:2019-04-08 16:50:52

标签: elasticsearch

当我在Elasticsearch中使用通配符查询(末尾的通配符)进行搜索时,所有匹配的得分均在1.0中。 这是设计使然吗?我可以在某处更改此行为吗?

1 个答案:

答案 0 :(得分:0)

Elasticsearch基本上说所有结果都是同等相关的,因为您提供了不合格的搜索(通配符,等效于match_all)。通过各种类型查询添加一些其他上下文后,您会注意到评分发生了变化。

根据您的最终目标,您可能需要研究Function Score查询-参考:https://www.elastic.co/guide/en/elasticsearch/reference/6.7/query-dsl-function-score-query.html

提供的第一个示例将为您提供群集中所有文档的基本随机分数:

GET /_search
{
    "query": {
        "function_score": {
            "query": { "match_all": {} },
            "boost": "5",
            "random_score": {}, 
            "boost_mode":"multiply"
        }
    }
}