es 精确匹配评分_ElasticSearch系列-搜索-评分(重新打分)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-17 00:07   59   0

function_score

在使用ES进行全文搜索时,搜索结果默认会以文档的相关度进行排序,而这个 "文档的相关度",是可以透过 function_score 自己定义的,也就是说我们可以透过使用function_score,来控制 "怎麽样的文档相关度更高" 这件事

  • function_score是专门用于处理文档_score的DSL,它允许爲每个主查询query匹配的文档应用加强函数, 以达到改变原始查询评分 score的目的
  • function_score会在主查询query结束后对每一个匹配的文档进行一系列的重打分操作,能够对多个字段一起进行综合评估,且能够使用 filter 将结果划分爲多个子集 (每个特性一个filter),并爲每个子集使用不同的加强函数

es内置了几种预先定义好了的函数:

1、weight

对每份文档适用一个简单的提升,且该提升不会被归约,设置一个简单而不被规范化的权重提升值:

当weight为2时,结果为2 * _score

weight加强函数和 boost参数类似,可以用于任何查询,不过有一点差别是weight不会被Lucene nomalize成难以理解的浮点数,而是直接被应用 (boost会被nomalize)

2、field_value_factor

将某个字段的值乘上old_score

像是将 字段shareCount 或是 字段likiCount 作爲考虑因素,new_score = old

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP