首页 > 解决方案 > 可以获取 ElasticSerach 模板来获取现有索引吗?

问题描述

我有一个包含多个索引并创建多个别名的 ElasticSearch 模板。在测试时,我总是先创建模板(和底层别名),然后再创建索引。当我这样做时,别名会按预期显示。我没有在测试环境中已经存在索引并且当我在那里创建我的模板时没有显示别名的情况。

我是否正确假设没有显示别名的原因是因为索引已经存在?如果这是正确的,有没有办法让模板在不删除和重新创建索引的情况下获取索引?为什么需要在模板之后创建索引才能被拾取?

我是 ElasticSerach 的新手,所以如果这里的答案很明显,我深表歉意。我查看了模板、索引和别名的文档,但找不到我所看到的行为的解释。

标签: elasticsearch

解决方案


模板仅应用于索引创建。

如果您在创建与该索引匹配的模板之前创建了索引,则不会应用此模板,如果您更改模板中的某些内容(例如分片或别名的数量),也会发生同样的事情。

从有关索引模板的文档中,您拥有:

索引模板是一种在创建索引时告诉 Elasticsearch 如何配置索引的方法。

模板是在创建索引之前配置的。创建索引时(手动或通过索引文档),模板设置用作创建索引的基础。

如果您在模板中定义别名,它将仅应用于创建模板后创建的索引,如果您想为现有索引设置别名,则需要使用别名 API手动进行。

您不能将模板应用于现有索引。


推荐阅读