1

我最近一直在探索 Elastic Search。

我一直在经历别名。我看到 ES 提供了一个 API 来为单个索引创建多个别名,如下所示:

{ "actions" : [{ "add" : { "indices" : ["test1", "test2"], "alias" : "alias1" } }] }

参考:https ://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html#indices-aliases

我想知道这个的用例是什么。

如果别名指向多个索引,对别名的查询不会被拆分吗?

我曾尝试获取信息,但未能这样做,因为到处都在解释如何实现这一目标,而不是用例。

将我引导到可以获取更多信息的资源也会有所帮助。

4

1 回答 1

1

一个可能的用例是当您的应用程序必须以零停机时间从旧索引切换到新索引时

假设您由于某些原因想要重新索引索引并且您没有在索引中使用别名,那么您需要更新您的应用程序以使用新的索引名称。

这有什么帮助?

假设您的应用程序使用别名而不是索引名称。

让我们创建一个索引:

PUT /my_index

创建它的别名:

PUT /my_index/_alias/my_index_alias

现在你决定重新索引你的索引(也许你想改变现有的映射)。

正确重新索引文档后,您可以切换别名以指向新索引。

注意:您需要在将别名添加到新索引的同时从旧索引中删除别名。您可以使用 _aliases 端点原子地做到这一点。

好读:弹性

根据您为单个索引维护两个别名的问题用法:

  • 在索引中的文档子集上创建“视图”。

使用具有相同别名的多个索引:

  • 将多个索引分组在同一个名称下,如果您想同时对多个索引执行单个查询,这将很有帮助。

  • 但是您不能使用此策略插入/索引数据。

于 2018-08-03T10:47:04.403 回答