为单个弹性搜索索引维护两个别名的用途是什么

时间:2018-08-03 09:51:17

标签: elasticsearch elasticsearch-5

我最近一直在探索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

我想知道这是什么用例。

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

我尝试获取信息,但是没有这样做,因为到处都在解释如何实现此目的,而不是用例。

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

1 个答案:

答案 0 :(得分:0)

  

可能的用例是当您的应用程序必须从   旧索引到具有零停机时间的新索引

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

这有什么帮助?

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

让我们创建一个索引:

PUT /my_index

创建别名:

PUT /my_index/_alias/my_index_alias

现在,您已决定为索引重新编制索引(也许您想更改现有映射)。

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

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

好读的书:elastic

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

  • 在索引中的一部分文档上创建“视图”。

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

  • 将多个索引归为同一名称,如果要同时对多个索引执行单个查询,这将很有帮助。

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