我有一个包含多个索引并创建了几个别名的ElasticSearch模板。在测试时,我总是先创建模板(和底层别名),然后创建索引。当我这样做时,别名会像预期的那样出现。我没有遇到这样的情况:索引已经存在于测试环境中,并且当我在那里创建模板时,别名没有显示出来。
我假设没有显示别名的原因是因为索引已经存在,这样的假设正确吗?如果这是正确的,有没有一种方法可以让模板在不删除和重新创建索引的情况下提取索引?为什么需要在模板之后创建索引才能被拾取?
我是ElasticSerach的新手,所以如果答案是显而易见的,我很抱歉。我浏览了模板、索引和别名的文档,但找不到对我所看到的行为的解释。
发布于 2021-05-21 06:11:33
模板仅在创建索引时应用。
如果您在创建与该索引匹配的模板之前创建了一个索引,则不会应用此模板,如果您更改了模板中的某些内容,如分片或别名的数量,也会发生同样的事情。
在关于索引模板的documentation中,您可以:
索引模板是一种在创建索引时告诉Elasticsearch如何配置索引的方法。
和
模板在索引创建之前进行配置。创建索引时-无论是手动创建索引还是通过为文档编制索引-模板设置将用作创建索引的基础。
如果您在模板中定义别名,它将仅应用于在模板创建后创建的索引,如果您想要为现有索引设置别名,则需要使用alias API手动设置。
您不能将模板应用于现有索引。
https://stackoverflow.com/questions/67627355
复制相似问题