2017-07-14 84 views
0

我想实施某种迁移来映射更改。所以我的问题是我想使用reindex,如果由于某种原因,我的新映射不适用于我当前的数据(例如更改类型)。如果字段已被删除我做到以下几点:Elasticsearch reindex忽略映射参数动态虚假

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

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

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

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

回答

0

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

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

谢谢,是的,我知道这一个,但执行这个会更多一点。只是认为它可以使用带有新映射和动态false的reindex开箱即用。 – TdL