在elasticsearch中查找并替换所有文档

时间:2016-07-28 12:26:53

标签: elasticsearch elasticsearch-plugin elastic-stack

我想替换所有弹性搜索索引文档中的单个用户名。有没有API查询?

我尝试搜索多个但无法找到。有人有想法吗?

我的情景:



curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"mad", "role":"tester"}'
curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"bob", "role":"engineer"}'
curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"cat", "role":"engineer"}'
curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"bob", "role":"doctor"}'




我在索引中有上述数据" test"并输入"电影"。在这里,我想要更换所有的" bob"用" alice"命名。

由于

1 个答案:

答案 0 :(得分:3)

update-by-query是要走的路。

POST /test/movies/_update_by_query
{
  "script": {
    "inline": "ctx._source.user = 'alice'"
  },
  "query": {
    "term": {
      "user": "bob"
    }
  }
}

注意:请务必使用enable dynamic scripting才能生效。