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

标签 elasticsearch

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

最佳答案

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

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

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

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

关于elasticsearch - Elasticsearch-如果搜索频率更高,则得分更高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57816792/

相关文章:

elasticsearch - ElasticSearch:如何使用edge_ngram并具有真正相关的匹配项以首先显示

elasticsearch - 数据已使用 Camel 索引到 Elasticsearch 中,但无法在Kibana或localhost:9200中看到

elasticsearch - 是否在kibana中删除索引,在 Elasticsearch 中也删除相同的索引?

twitter - Flume与TwitterSource和Elasticsearch Sink

ruby - Ruby-Elastic Search和RabbitMQ-数据导入丢失,脚本无提示崩溃

java - 如何使用startsWith功能和特殊字符构建Elasticsearch查询

elasticsearch - 在Elasticsearch中找到当前位置到周围酒店的距离

ruby-on-rails - 在Ruby中使用 Elasticsearch gem时在哪里指定集群详细信息

elasticsearch - Elasticsearch 查询匹配中的不同记录

java - 基于嵌套数组的Elasticsearch聚合查询