在elasticsearch中查找并替换所有文档
Find and replace in elasticsearch all documents
我想替换我所有 elasticsearch 索引文档中的单个用户名。有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" 的索引中有上述数据并键入 "movies"。在这里我想用 "alice".
替换所有 "bob" 名称
谢谢
update-by-query 是要走的路。
POST /test/movies/_update_by_query
{
"script": {
"source": "ctx._source.user = 'alice'"
},
"query": {
"term": {
"user": "bob"
}
}
}
注意:确保 enable dynamic scripting 才能正常工作。
我想替换我所有 elasticsearch 索引文档中的单个用户名。有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" 的索引中有上述数据并键入 "movies"。在这里我想用 "alice".
替换所有 "bob" 名称谢谢
update-by-query 是要走的路。
POST /test/movies/_update_by_query
{
"script": {
"source": "ctx._source.user = 'alice'"
},
"query": {
"term": {
"user": "bob"
}
}
}
注意:确保 enable dynamic scripting 才能正常工作。