0

我正在查看 elasticsearch 的文档,了解如何为自定义评分函数创建脚本,该函数使用未在链接上查询评分的字段。

从我所见,您可以像这样构建一个脚本函数:

"script_score" : {
    "script" : {
      "lang": "painless",
      "inline": "_score * doc['my_numeric_field'].value"
    }
}

但我想知道doc['my_numeric_field'].value如果缺少替换的语法是什么?

4

2 回答 2

1

问题很旧,但也许我的回答对某人有用。

您应该使用 size来检查是否缺少值:

doc['field'].size() == 0
于 2018-09-26T13:26:41.300 回答
1

对我来说,以下工作(我的版本是 6.2.4):

          "script_score" : {
            "script" : {
              "source": "doc.containsKey('my_numeric_field') ? doc['my_numeric_field'].value : 0"
            }
        },

在以下位置找到它:

https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-fields.html

于 2018-05-29T15:17:27.157 回答