ElasticSearch API - 通过查询脚本参数更新 null_pointer_exception
ElasticSearch API - update by query script params null_pointer_exception
我是 ElasticSearch 的新手,我正在尝试使用 _update_by_query 路由。我正在发送这个正文:
{
"query": {
"match": {
"id": "fdfsfsfs-058f-437d-bc52-473808ba61c2"
}
},
"script": {
"inline": "ctx._source.addresses.add(params.data)",
"params": {
"data": {
"street": "Road",
"number": 15,
"county": "WWW"
}
}
}
}
但我收到以下回复:
{
"error": {
"root_cause": [
{
"type": "script_exception",
"reason": "runtime error",
"script_stack": [
"ctx._source.addresses.add(params.data)",
" ^---- HERE"
],
"script": "ctx._source.addresses.add(params.data)",
"lang": "painless",
"position": {
"offset": 30,
"start": 0,
"end": 36
}
}
],
"type": "script_exception",
"reason": "runtime error",
"script_stack": [
"ctx._source.addresses.add(params.data)",
" ^---- HERE"
],
"script": "ctx._source.addresses.add(params.data)",
"lang": "painless",
"position": {
"offset": 30,
"start": 0,
"end": 36
},
"caused_by": {
"type": "null_pointer_exception",
"reason": null
}
},
"status": 400
}
我不知道可能是什么错误,因为我传递了我的参数并且它们在“脚本”对象中。有谁知道哪里出了问题?
非常感谢您!
我认为 match
查询实际上匹配了多个文档,其中一个没有任何名为 addresses
的字段。
您可能需要更改为 term
查询以进行精确匹配,并且仅 select 您想要更新的单个文档。
我是 ElasticSearch 的新手,我正在尝试使用 _update_by_query 路由。我正在发送这个正文:
{
"query": {
"match": {
"id": "fdfsfsfs-058f-437d-bc52-473808ba61c2"
}
},
"script": {
"inline": "ctx._source.addresses.add(params.data)",
"params": {
"data": {
"street": "Road",
"number": 15,
"county": "WWW"
}
}
}
}
但我收到以下回复:
{
"error": {
"root_cause": [
{
"type": "script_exception",
"reason": "runtime error",
"script_stack": [
"ctx._source.addresses.add(params.data)",
" ^---- HERE"
],
"script": "ctx._source.addresses.add(params.data)",
"lang": "painless",
"position": {
"offset": 30,
"start": 0,
"end": 36
}
}
],
"type": "script_exception",
"reason": "runtime error",
"script_stack": [
"ctx._source.addresses.add(params.data)",
" ^---- HERE"
],
"script": "ctx._source.addresses.add(params.data)",
"lang": "painless",
"position": {
"offset": 30,
"start": 0,
"end": 36
},
"caused_by": {
"type": "null_pointer_exception",
"reason": null
}
},
"status": 400
}
我不知道可能是什么错误,因为我传递了我的参数并且它们在“脚本”对象中。有谁知道哪里出了问题?
非常感谢您!
我认为 match
查询实际上匹配了多个文档,其中一个没有任何名为 addresses
的字段。
您可能需要更改为 term
查询以进行精确匹配,并且仅 select 您想要更新的单个文档。