弹性搜索使数字字段得分最终相关

时间:2018-10-24 17:02:13

标签: elasticsearch

我有一个名为的字段。当我搜索名称时,我希望拥有最高喜欢度的文档排在顶部。但事实并非如此。

{
  "from": 0,
  "size": 10,
  "query": {
    "match": {
      "name": "Lon"
    }
  },
  "sort": [
    "_score",
    {
      "likes": {
        "order": "desc"
      }
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

您正在对两个字段"_score""likes"进行排序。这将按"_score"进行排序,如果存在平局(两个结果之间的分数相同),则它将使用"likes"对具有相同"_score"的记录进行排序。从您的问题看来,您似乎只想对"likes"进行排序,而"_score"就没有那么重要了。因此,修改查询以仅按"likes"进行排序。

{
  "from": 0,
  "size": 10,
  "query": {
        "match" : {
            "name" : "Lon"
        }
    },
    "sort" : [
        { "likes" : {"order" : "desc"}}
    ]
}