提升特定领域的搜索量并按排名进行排序

Rod*_*d0n 6 elasticsearch

我有以下查询:

{
    "sort": [
        {"actual_rank" : "desc"}
    ],
    "query": {
        "multi_match" : {
            "query" : term,
            "fields" : [ "title^3" , "category^5" , "entities.name^5"]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

此查询的问题在于按排名进行排序会使指定的字段提升相当不相关(在指定字段中未出现该字词的最佳排名项目将比出现该字词的最差排名项目更高) .

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

Jam*_*son 6

实际上,根据排序文档(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/)

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

  • 该博客不再可用。 (2认同)