我最近一直在探索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
我想知道这是什么用例。
如果别名指向多个索引,对别名的查询不会拆分吗?
我尝试获取信息,但是没有这样做,因为到处都在解释如何实现此目的,而不是用例。
将我定向到可以获取更多信息的资源也将有所帮助。
答案 0 :(得分:0)
可能的用例是当您的应用程序必须从 旧索引到具有零停机时间的新索引。
假设由于某些原因您要为索引重新索引,并且没有在索引中使用别名,那么您需要更新应用程序以使用新的索引名称。
这有什么帮助?
假设您的应用程序使用别名而不是索引名称。
让我们创建一个索引:
PUT /my_index
创建别名:
PUT /my_index/_alias/my_index_alias
现在,您已决定为索引重新编制索引(也许您想更改现有映射)。
文档正确地重新建立索引后,您可以切换别名以指向新索引。
注意:您需要在将别名添加到新索引的同时,从旧索引中删除别名。您可以原子地使用_aliases端点来实现。
好读的书:elastic
根据您的问题为单个索引维护两个别名的用法:
使用具有相同别名的多个索引:
将多个索引归为同一名称,如果要同时对多个索引执行单个查询,这将很有帮助。
但是您不能使用此策略插入/索引数据。