Elasticsearch reindex 忽略映射参数 dynamic false
Elasticsearch reindex ignores mapping param dynamic false
我正在尝试为映射更改实施某种迁移。所以我的问题是如果由于某种原因我的新映射不适用于我当前的数据(例如类型更改),我想使用重新索引。如果某个字段已被删除,我将执行以下操作:
- 使用新映射创建新索引(其中不包括删除的字段)
- 在新创建的索引中重新索引我当前的索引
- 删除旧索引并为新索引设置别名
此类型的动态映射设置为 false,因此我认为当使用新映射将数据重新索引到新索引时,删除的字段将被忽略。所以我的问题是该字段只是被复制到新索引中,尽管没有为此定义映射。如文档中所述 (https://www.elastic.co/guide/en/elasticsearch/reference/5.2/dynamic.html) 我认为没有任何映射的字段将被忽略。
另一方面,设置为严格的动态映射会失败。
我是不是遗漏了什么或者有更好的方法吗?
您可以采用其他方式,指定您为其定义映射的源中的字段。
POST _reindex
{
"source": {
"index": "old index",
"_source": ["field1", "field2","field3"]
},
"dest": {
"index": "new index"
}
}
我正在尝试为映射更改实施某种迁移。所以我的问题是如果由于某种原因我的新映射不适用于我当前的数据(例如类型更改),我想使用重新索引。如果某个字段已被删除,我将执行以下操作:
- 使用新映射创建新索引(其中不包括删除的字段)
- 在新创建的索引中重新索引我当前的索引
- 删除旧索引并为新索引设置别名
此类型的动态映射设置为 false,因此我认为当使用新映射将数据重新索引到新索引时,删除的字段将被忽略。所以我的问题是该字段只是被复制到新索引中,尽管没有为此定义映射。如文档中所述 (https://www.elastic.co/guide/en/elasticsearch/reference/5.2/dynamic.html) 我认为没有任何映射的字段将被忽略。
另一方面,设置为严格的动态映射会失败。
我是不是遗漏了什么或者有更好的方法吗?
您可以采用其他方式,指定您为其定义映射的源中的字段。
POST _reindex
{
"source": {
"index": "old index",
"_source": ["field1", "field2","field3"]
},
"dest": {
"index": "new index"
}
}