elasticsearch,Node.js,elasticsearch" /> elasticsearch,Node.js,elasticsearch" />

Node.js 如何使用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":

我想要解决的情况是使用nodejs驱动程序为elasticsearch更新标题索引中的文档,标题与某些参数匹配。我当前使用的查询是

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代码中的一个变量,然后用作脚本参数