假设我有1000个用户,每个用户有50个文档(每个文档都嵌入了具有名称和电子邮件的用户对象),我需要为一组用户更新名称和电子邮件。
我想使用Bulk Api,但似乎批量API仅支持“_id”作为参数。我想提出一个查询
例如:我想做,
POST _bulk
{ "update" : {"query" : {"terms": {"userId": "25"}}, "_type" : "comments", "_index" : "comments"} }
{ "doc" : {"user.name" : "new name"} }
而不是
POST _bulk
{ "update" : {"_id" : "1", "_type" : "comments", "_index" : "comments"} }
{ "doc" : {"user.name" : "new name"} }
答案 0 :(得分:0)
您可以将update by query API用于此目的:
POST comments/_update_by_query
{
"script": {
"inline": "ctx._source.user.name = newName",
"lang": "painless",
"params": {
"newName": "new name"
}
},
"query": {
"term": {
"userId": "25"
}
}
}