Elasticsearch reindex忽略映射param动态false

时间:2017-07-14 10:50:42

标签: elasticsearch elasticsearch-5

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

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

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

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

我错过了什么或有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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