Elasticsearch中的线性函数评分

时间:2016-03-15 13:28:49

标签: elasticsearch

我有一组文档,每个文档都有一个内容字段和一个日期字段。我试图以一种能够提升新文档的方式操纵乐谱。

我找到了线性衰减评分函数,但我无法理解它是如何工作的。

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

对于上述配置,根据我的理解,7天以内的文档不会操纵其分数,比这更长的文档会在30天的间隔内将分数降低0.5,这是正确的吗?

重要说明:我使用的是ES 1.7.4,较新的ES版本对比例属性有不同的定义

1 个答案:

答案 0 :(得分:1)

“scale”:“30d”=>定义衰变率

“offset”:“7d”=>距离大于定义的偏移导致衰减的距离 “衰变”:0.5 =>文件的衰减率(偏移+ - (n *标度))天

  

对于上面的配置,从我的理解,文件   超过7天不会操纵他们的分数

不仅更新,而且更老,即距当前日期offset

线性衰减,计算如下:

Linear decay function

再次计算参数s以确保得分在距离原点+ -offset的距离范围内采用值衰减

enter image description here

与正常和指数衰减相反,如果字段值超过用户给定比例值的两倍, linear decay实际上将分数设置为0. < / p>

Reference