7

我有以下查询:

{
    "sort": [
        {"actual_rank" : "desc"}
    ],
    "query": {
        "multi_match" : {
            "query" : term,
            "fields" : [ "title^3" , "category^5" , "entities.name^5"]
        }
    }
}

此查询的问题在于,按排名排序使得指定字段的提升非常不相关(术语未出现在指定字段中的排名最高的项目将比出现该术语的排名最差的项目排名更高) .

我想降低排序的重要性以获得更好的结果。

4

1 回答 1

7

实际上,根据排序文档(http://www.elasticsearch.org/guide/reference/api/search/sort/track_scores ),如果您希望在对字段进行排序时完全计算分数,则需要启用该设置.

但是,我猜您想进行一些自定义评分(请参阅http://www.elasticsearch.org/guide/reference/query-dsl/custom-score-query/和/或http://www.elasticsearch。 org/guide/reference/query-dsl/custom-filters-score-query/)。这篇博文( http://jontai.me/blog/2013/01/advanced-scoring-in-elasticsearch/中的例子非常好

我会发布代码,但我认为博客文章提供了一个全面的视图。

于 2013-08-29T21:57:49.267 回答