在测试 Elasticsearch 索引中,我已经索引了一个文档,现在我想通过将其length
属性设置为来更新文档100
。我想通过elasticsearch
包通过脚本来做到这一点(因为这是一个简化的例子来说明我的问题)。
client.update({
index: 'test',
type: 'object',
id: '1',
body: {
script: 'ctx._source.length = length',
params: { length: 100 }
}
})
但是,我收到以下错误:
{
"error": {
"root_cause": [
{
"type": "remote_transport_exception",
"reason": "[6pAE96Q][127.0.0.1:9300][indices:data/write/update[s]]"
}
],
"type": "illegal_argument_exception",
"reason": "failed to execute script",
"caused_by": {
"type": "script_exception",
"reason": "compile error",
"script_stack": [
"ctx._source.length = length",
" ^---- HERE"
],
"script": "ctx._source.length = length",
"lang": "painless",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Variable [length]is not defined."
}
}
},
"status": 400
}
即使我已将该length
属性包含在body.params.length
.
使用以下内容:
- 弹性搜索服务器
v6.1.1
- Elasticsearch JavaScript 客户端
v14.1.0
我该如何解决这个问题?