【问题标题】:Linear function scoring in ElasticsearchElasticsearch 中的线性函数评分
【发布时间】:2016-03-16 01:59:07
【问题描述】:

我有一组文档,每个文档都有一个内容字段和一个日期字段。我正在尝试以一种可以提升新文档的方式来操纵分数。

我找到了线性衰减分数函数,但我无法理解它的实际工作原理。

"function_score": {
  "functions": [
    {
      "linear": {
        "date": {
          "scale": "30d",
          "offset": "7d",
          "decay": 0.5
        }
      }
    }
  ] 
}

对于上述配置,据我了解,超过 7 天的文档不会被操纵其分数,比这更旧的文档会以 30 天为间隔将其分数降低 0.5,是对吗?

重要提示:我使用的是 ES 1.7.4,较新的 ES 版本对 scale 属性有不同的定义

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    "scale": "30d" => 定义衰减率

    "offset": "7d" => 大于定义的偏移量导致衰减的距离 "decay": 0.5 => (offset+-(n*scale)) 天的文档的衰减率

    对于上述配置,据我了解,文件表明 超过 7 天的新人将不会操纵他们的分数

    不仅是新的,而且是旧的,即在距离当前日期offset 的范围内

    线性衰减,计算如下:

    再次计算参数 s 以确保分数在距离原点+-偏移量的距离范围内衰减

    与正常和指数衰减相比,linear decay 实际上会在字段值超过用户给定比例值的两倍时将分数设置为 0。

    Reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-04
      • 2019-02-10
      • 2015-08-27
      • 1970-01-01
      • 2014-06-21
      • 2021-10-24
      • 2016-11-18
      • 1970-01-01
      相关资源
      最近更新 更多