Node.js 如何使用nodejs驱动程序将参数传递给elasticsearch内联脚本?
我想要解决的情况是使用nodejs驱动程序为elasticsearch更新标题索引中的文档,标题与某些参数匹配。我当前使用的查询是Node.js 如何使用nodejs驱动程序将参数传递给elasticsearch内联脚本?,node.js,elasticsearch,Node.js,elasticsearch,我想要解决的情况是使用nodejs驱动程序为elasticsearch更新标题索引中的文档,标题与某些参数匹配。我当前使用的查询是 client.updateByQuery({ index: "title", type: "type", body: { "query": { "bool": { "filter": [ { "term":
client.updateByQuery({
index: "title",
type: "type",
body: {
"query": {
"bool": {
"filter": [
{ "term": { "tvSeriesId": 123} },
{ "term": { "tvSeriesNumber": 456} }
]
}
},
"script": {
"inline": "ctx._source.someRandomField = 'abc'"
}
}
}, function(err, res) {
if (err) {
reportError(err)
}
cb(err, res)
}
)
我希望脚本是动态的,我可以向脚本传递一个值来更改字段的值。例如,someRandomField的值可以在查询调用之前在前一个变量中声明。如何将该变量传递给脚本?您可以使用脚本
参数执行此操作:
client.updateByQuery({
index: "title",
type: "type",
body: {
"query": {
"bool": {
"filter": [
{ "term": { "tvSeriesId": 123} },
{ "term": { "tvSeriesNumber": 456} }
]
}
},
"script": {
"inline": "ctx._source.someRandomField = newValue"
"params": {
"newValue": newRandomFieldValue
}
}
}
}, function(err, res) {
if (err) {
reportError(err)
}
cb(err, res)
}
)
newRandomFieldValue
将是Node.js代码中的一个变量,然后用作脚本参数