「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?
背景 众所周知,Elasticsearch是⼀个实时的分布式搜索引擎,为⽤户提供搜索服务。当我们决定存储某种数据,在创建索引的时候就需要将数据结构,即Mapping确定下来,于此同时索引的设定和很多固定配置将不能改变。 <!-- more --> 那如果后续业务发生变化,需要改变数据结构或者更换ES更换分词器怎么办呢?为此,Elastic团队提供了很多通过辅助⼯具来帮助开发⼈员进⾏重建索引的方案。 如果对 reindex API 不熟悉,那么在遇到重构的时候,必然事倍功半,效率低下。反之,就可以方便地进行索引重构,省时省力。 步骤 假设之前我们已经存在一个blog索引,因为更换分词器需要对该索引中的数据进行重建索引,以便支持业务使用新的分词规则搜索数据,并且尽可能使这个变化对外服务没有感知,大概分为以下几个步骤: 新增⼀个索引 blog_lastest ,Mapping数据结构与 blog 索引一致 将 blog 数据同步至 blog_lastest 删除 blog 索引 数据同步后给 blog_lastest 添加别名 blog 新建索引 在这里推荐一个ES管理工具 Kibana ,主要针对数据的探索、可视化和分析。 put /blog_lastest/ { "mappings":{ "properties":{ "title":{ "type":"text",