我有ElasticSearch索引,可以存储超过1000万个文档。我需要遍历所有索引并为每个文档添加新的字段和值。我知道两种方法:1.使用滚动搜索获取所有结果,并使用BULK api将所有文档复制到新索引中(在复制时添加新字段)。将所有文档复制到新索引后-切换别名。2.使用滚动搜索和批量API更新现有索引中的所有文档(无需复制到新索引和切换别名)。
我不明白,为什么推荐第一种方法?我可以只使用2种方法吗?在使用2种方法运行程序时,是否有可能索引发生问题?我需要更新的索引包含实时产品数据,我担心客户可能会受到某种影响
使用脚本轻松
POST /mysqltest/_update_by_query
{
"query": {
"match_all": {}
},
"script": { "inline": "ctx._source.category = \"10\";" } --> category is new key that to be added in all documents
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |