为一个ElasticSearch索引维护两个别名有什么用

bqf10yzr  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(2)|浏览(204)

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

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

请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html#indices-aliases
我想知道这是什么用例。
如果别名指向多个索引,对别名的查询不会被拆分吗?
我试过获取信息,但没有做到这一点,因为到处都在解释如何实现这一点,但没有用例。
指引我到一个资源,我可以得到更多的信息也会有帮助。

piah890a

piah890a1#

一个可能的用例是当您的应用程序必须在零停机时间的情况下从旧索引切换到新索引时
假设您由于某些原因要对索引重新建立索引,并且您没有对索引使用别名,那么您需要更新应用程序以使用新的索引名称。

这有什么帮助

假设您的应用程序正在使用别名,而不是索引名称。
让我们创建一个索引:

PUT /my_index

创建其别名:

PUT /my_index/_alias/my_index_alias

现在,您已经决定重新索引索引(也许您想要更改现有Map)。
正确地对文档重新建立索引后,您可以切换别名以指向新索引。
注意:您需要在将别名添加到新索引的同时将其从旧索引中删除。您可以使用_aliases端点自动执行此操作。
好好读读:elastic

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

  • 在索引中的文档子集上创建“视图”。
    使用具有相同别名的多个索引:
  • 将多个索引分组在同一名称下,这在您希望同时对多个索引执行单个查询时很有用。
  • 但是,您不能使用此策略插入/索引数据。
gg0vcinb

gg0vcinb2#

假设您有两种事件类型,eventA和eventB。您希望按时间对其进行“分区”,因此您使用别名将多个索引(例如eventA-20220920)Map到一个别名(本例中为“eventA”)。您希望为所有事件类型创建一个别名,因此需要为所有eventA-* 和eventB-* 索引提供另一个别名“event”。
这样,当您添加第三种类型的事件(eventC)时,您只需将它们添加到'event'别名中,而无需更改查询

相关问题