【问题标题】:Add new fields in 10 million documents in ElasticSearch在 ElasticSearch 的 1000 万个文档中添加新字段
【发布时间】:2017-11-27 15:52:24
【问题描述】:

我有存储超过 1000 万个文档的 ElasticSearch 索引。我需要遍历所有索引并为每个文档添加新字段和值。我知道两种方法: 1.使用滚动搜索获取所有结果并使用BULK api将所有文档复制到新索引中[复制时添加新字段]。将所有文档复制到新索引后 - 切换别名。 2.使用滚动搜索和批量API更新现有索引中的所有文档(不需要复制到新索引和切换别名)。

我不明白,为什么推荐第一种方法?我可以只使用 2 方法吗?是否有可能在使用 2 方法运行程序时,索引可能会发生不好的事情?我需要更新的索引有实时产品数据,我担心客户可能会受到某种影响

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    轻松使用脚本

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      相关资源
      最近更新 更多