【发布时间】:2019-01-08 02:43:43
【问题描述】:
我正在尝试向 Elasticsearch 发送以下查询。这是查询的最小更新,这给了我例外。让我们将其命名为 Query1:
{
"id": "someID",
"script": {
"lang": "painless",
"source": " if (ctx._source.containsKey('value')) { ctx._source.value = ctx._source.value + params.value; }"
},
"params": {
"value": 1
},
"upsert": {
"value": 1
}
}
一段时间以来一直试图解决这个问题。在我们的例子中,参数值被索引为integer。它自身的查询作为批量 API 的一部分发送。如下所示:
{update: {_id:"someID", _index:"someIndex", _type:"someType"}}
(Query1)
在尝试运行脚本时会出现运行时异常: null_point_exception
params.value
^--- here
我已经看到related 这个问题但不包含解决方案。在堆栈溢出和其他站点。
【问题讨论】:
-
看起来 params 是字段和其他东西的集合,您可以像这样访问您的数据
params._fields['fieldName'].value -
测试一下。
-
params._fields 仍然给我空指针异常
-
好吧,你能不能给我一组映射/数据..我会尽力调查你的问题
-
感谢@Yanis-git 等不及了。
标签: javascript elasticsearch elasticsearch-painless