ES学习记录17——关于评分

 ES评分这一块主要依靠function_score,它可以改变查询返回文档的分数。通常计算得分代价比较大,它可以对已经过滤的文档进行评分。function_score中需要定义一个 query 以及一个或多个计算查询的得到文档得分的函数。只有一个计算得分函数的示例如下:GET localhost:9200/index-name/_search?pretty{ "query": { ...
摘要由CSDN通过智能技术生成

 ES评分这一块主要依靠function_score,它可以改变查询返回文档的分数。通常计算得分代价比较大,它可以对已经过滤的文档进行评分。function_score中需要定义一个 query 以及一个或多个计算查询的得到文档得分的函数。只有一个计算得分函数的示例如下:

GET localhost:9200/index-name/_search?pretty
{
   
    "query": {
   
        "function_score": {
   
            "query": {
    "match_all": {
   } },
            "boost": "5",
            // random_score 就是一种随机计算得分的函数
            "random_score": {
   },
            "boost_mode":"multiply"
        }
    }
}

 在function_score中提供几种计算得分的函数:

  • script_score:可以在内部包裹额外的query语句,可以选择使用文档中其他数字属性值来计算自定义评分;
  • weight:可以将得分和weight字段值相乘,有时可能会希望这样做,因为对特定查询设置的提升值(即boost设置的值)进行了归一化,而对于此得分函数却没有,数字值是float类型;
  • random_score:根据_uid的hash值生成得分,并带有一个变化的seed,如果不指定seed的值,则使用当前时间戳;
  • field_value_factor:可以使用文档中的字段来人为影响得分,和script_score函数相似,但它可以避免脚本开销。如果被用于一个多值字段,那只有该字段的第一个值会被用来计算,其他的值不会用于计算;
  • decay functions:衰减函数,可以随着文档距离给定值(数值类型,表示原点)的距离进行评分,需要指定参与评分的每个字段的origin(标识中心值)和scale(衰减的速率)。

下面的是示例文档结构:

"_source": {
   
    "id": 1724933159515744,
    "propertyId": 1724930759808608,
    "name": "测试文档"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值