我有以下查询:
{
"sort": [
{"actual_rank" : "desc"}
],
"query": {
"multi_match" : {
"query" : term,
"fields" : [ "title^3" , "category^5" , "entities.name^5"]
}
}
}
此查询的问题在于按排名排序会使指定的字段提升相当不相关(在指定字段中未出现该字词的最佳排名项目将比排名最差的项目更高术语出现)。
我想降低排序的重要性,以获得更好的结果。
答案 0 :(得分: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/)
我发布了代码,但我认为博客文章提供了一个全面的视图。