Elasticsearch-如果搜索频率更高,则得分更高

时间:2019-09-06 06:30:17

标签: elasticsearch

假设我有3个文档: A,B,C 所有术语都非常相似,内部分数也完全相同 人们搜索B的频率高于A和C,但是搜索C的频率高于A。 我可以像B,C,A一样获得分数吗?

1 个答案:

答案 0 :(得分:1)

在您描述的用例中,您无法更改评分/相关性计算的行为。使用时,boosting有可能匹配查询以影响搜索值时的得分。但这不合适,因为您只想对文档进行排序。

因此,有关搜索频率的信息必须是文档本身的一部分,这意味着它必须是一个自己的字段。然后,您可以像下面这样简单地添加一个排序子句

{
  "query": {
     // your awesome query...
  },
  "sort": [
     {
       "search_frequency": {
         "order": "desc"
       }
     },
     "_score"
  ]
}

此解决方案中的挑战将使字段 search_frequency 的值保持最新。您可以通过Update API来做到这一点。