ElasticSearch实战(十五)-索引别名

Posted 张志翔ۤ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch实战(十五)-索引别名相关的知识,希望对你有一定的参考价值。

         业务需求是不断变化迭代的,也许我们之前写的某个业务逻辑在下个版本就变化了,我们可能需要修改原来的设计,例如数据库可能需要添加一个字段或删减一个字段,而在搜索中也会发生这件事,即使你认为现在的索引设计已经很完美了,在生产环境中,还是有可能需要做一些修改的,需要添加映射字段或者需要修改字段类型等等。

        数据库中我们可以直接修改原来的表设计语句,前提是需要做好数据迁移。但是在 Elasticsearch 中就没那么简单了。尽管可以增加新的类型到索引中,或者增加新的字段到类型中,但是不能添加新的分析器或者对现有的字段做改动。如果你那么做的话,结果就是那些已经被索引的数据就不正确,搜索也不能正常工作。针对这个问题必须重新建立索引。

一、索引别名的意义

        重新建立索引的问题是必须更新应用中的索引名称,索引别名就是用来解决这个问题的!

        假设我们有个学生的原始索引 student_index_v1,我们给它起个别名 student_index,程序中也是用别名 student_index 进行搜索,当我们的业务需求发生改变需要修改索引的时候,我们重新创建个索引 student_index_v2,同时将别名 student_index 指向新的索引 student_index_v2,同时将 student_index_v1 的数据迁移到新的 student_index_v2,这样我们就可以做到在零停机下从旧索引切换到新索引。

        索引别名就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引名的API来使用,而且别名不能与索引同名。

        别名带给我们极大的灵活性,允许我们做下面这些&#

以上是关于ElasticSearch实战(十五)-索引别名的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch实战(二十)-使用别名索引设计

ElasticSearch实战(二十五)-Settings 属性详解

ElasticSearch实战(二十五)-Settings 属性详解

ElasticSearch实战(三十五)-Ingest Pipeline 数据预处理(轻量级ETL)

ElasticSearch实战(三十五)-Ingest Pipeline 数据预处理(轻量级ETL)

ElasticSearch实战(三十一)-索引加权