【问题标题】:elasticsearch custom scoring based on date fieldelasticsearch基于日期字段的自定义评分
【发布时间】:2015-03-21 04:51:28
【问题描述】:

如何在 Elasticsearch 中编写自定义脚本来检查日期字段并通过赋予当前日期和字段中日期之间的差异更多相关性来得分?基本上,如果差异是负值,我想首先显示该结果。

【问题讨论】:

  • 我能够获得脚本分数中字段的值。但我想得到与当前日期相同的差异。

标签: groovy elasticsearch scoring


【解决方案1】:

如果能用function score query就最好了 那里有一个脚本类型函数 -

{
  "query": {
    "function_score": {
      "query": { // Your query //},
      "function": [
        {
          "script_score": {
            "lang": "groovy",
            "script": "doc['dateA'].value - doc['dateB'].value"
          }
        }
      ],
      "boost_mode": "replace" // Remove score from query and replace it with the score from script
    }
  }
}

【讨论】:

  • 我不太熟悉 Groovy。我想要做的是 DateA 与当前日期的值差异。我该怎么做?
  • 为什么要从当前日期减去?相反,您不能根据该日期字段进行排序。更改顺序应该适合您。
  • 会的。但我想在前端显示分数(过期或到期天数)。
猜你喜欢
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多