我们在ElasticSearch中存储的数据一般是采用json的格式存储,所以ElasticSearch中有一个叫Mapper的东西用来定义jsonschema来规范这个json
但是这个mapper在初期可能会经常变更,比如添加一个字段之类的
但是添加字段的时候就需要重建index,这个时候肯定会对使用者带来很大的问题,可能就直接挂了
所以针对这种情况呢,有一种方案还是不错的:
就是使用别名alias,我们建立索引的时候都给他建立一个别名,我们查询的时候都通过这个别名来访问,然后当我们需要reindex的时候重建索引,重建完成之后,再把别名替换到新索引上,不同版本的索引通过版本号分隔开,老版本的也可以根据情况删除掉,也可以备份着,以防万一
所以用搜索引擎原则一:索引统一建立别名用别名来访问,因为数据结构前期必然会不断变化,而要改变数据结构必须reindex而要重建索引,就不能影响现有搜索,所以别名是一个极好的方案