elasticsearch 无痛脚本更新无法实际更新文档,elasticsearch,elasticsearch" /> elasticsearch 无痛脚本更新无法实际更新文档,elasticsearch,elasticsearch" />

elasticsearch 无痛脚本更新无法实际更新文档

elasticsearch 无痛脚本更新无法实际更新文档,elasticsearch,elasticsearch,我有一份电子文件。名为“site”的字段,当前的值为“Elasticsearch”。我想将此字段的值更新为“stackOverFlow”。我使用下面的脚本进行同样的操作 “脚本”:{ “郎”:“无痛”, “内联”:“for(k in params.keySet()){if(!k.equals('ctx')){ctx.\u source.put(k,params.get(k))}” }, “参数”:{ “站点”:“堆栈溢出” } 我的回复很成功,而且u版本增加了1。但我的文档仍然没有更新。网站的价

我有一份电子文件。名为“site”的字段,当前的值为“Elasticsearch”。我想将此字段的值更新为“stackOverFlow”。我使用下面的脚本进行同样的操作

“脚本”:{ “郎”:“无痛”, “内联”:“for(k in params.keySet()){if(!k.equals('ctx')){ctx.\u source.put(k,params.get(k))}” }, “参数”:{ “站点”:“堆栈溢出” }

我的回复很成功,而且u版本增加了1。但我的文档仍然没有更新。网站的价值仍然是“弹性搜索”

注意:我使用的是ES版本6.4

有人能帮我找出哪里出了问题吗?

脚本中应该包含“params”字段。将“params”之前的大括号移到末尾

下面的ES查询适合我

POST /itest/_doc/1/_update
{
  "script": {
    "lang": "painless",
    "inline": "for (k in params.keySet()){if (!k.equals('ctx')){ctx._source.put(k, params.get(k))}}",
    "params": {
      "site": "stackOverFlow"
    }
  }
}