【问题标题】:Elasticsearch reindex ignores mapping param dynamic falseElasticsearch 重新索引忽略映射参数动态 false
【发布时间】:2017-07-14 10:50:41
【问题描述】:

我正在尝试为映射更改实施某种迁移。所以我的问题是如果由于某种原因我的新映射不适用于我当前的数据(例如类型更改),我想使用重新索引。如果某个字段已被删除,我会执行以下操作:

  • 使用新映射创建新索引(其中不包括已删除的字段)
  • 在新创建的索引中重新索引我当前的索引
  • 删除旧索引并将别名设置为新索引

此类型的动态映射设置为 false,因此我认为当使用新映射将数据重新索引到新索引中时,删除的字段将被忽略。所以我的问题是该字段只是被复制到新索引中,尽管没有为此定义映射。如文档 (https://www.elastic.co/guide/en/elasticsearch/reference/5.2/dynamic.html) 中所述,我认为没有任何映射的字段将被忽略。

另一方面,设置为严格的动态映射会失败。

我错过了什么还是有更好的方法来做到这一点?

【问题讨论】:

    标签: elasticsearch elasticsearch-5


    【解决方案1】:

    您可以做其他方式,指定您为其定义映射的源中的字段。

    POST _reindex
    {
      "source": {
        "index": "old index",
        "_source": ["field1", "field2","field3"]
      },
      "dest": {
        "index": "new index"
      }
    }
    

    【讨论】:

    • 谢谢,是的,我知道这个,但是这样做的实现会更多。只是认为使用带有新映射和动态 false 的 reindex 可以开箱即用。
    猜你喜欢
    • 2020-01-13
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 2017-03-11
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    相关资源
    最近更新 更多