【问题标题】:What are aliases in elasticsearch for?elasticsearch 中的别名是什么?
【发布时间】:2018-08-01 02:25:17
【问题描述】:

我最近开始在一家使用 Elasticsearch 的公司工作。虽然它的大部分概念有点类似于关系数据库并且我能够理解它们,但我仍然不太了解别名的概念。

我在这里没有找到任何此类问题,Elasticsearch website 上提供的信息也没有太大帮助。

有人能解释一下别名的用途,最好包括一个需要它们的情况的例子吗?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    别名就像软链接或实际索引的快捷方式

    优点是在 index2b 上构建或重新索引时能够有一个指向 index1a 的别名,并且由于别名的原因,交换它们的时刻是原子的,所有代码都应该指向该别名

    重命名别名是在同一个 API 中简单的删除然后添加操作。这个操作是原子的,不用担心别名没有指向索引的短时间:

    [EDIT] 正如@wholevinski 所指出的,别名具有其他功能,例如:

    可以为一个动作指定多个索引 ...

    所有信息都在您链接的页面中

    [EDIT2] 更多关于原子性的需要/好处的原因

    关键是“零停机时间”https://en.wikipedia.org/wiki/Zero_unscheduled_downtimehttps://en.wikipedia.org/wiki/High_availability

    https://www.elastic.co/guide/en/elasticsearch/guide/current/index-aliases.html

    我们将在本书后面更多地讨论别名的其他用途。现在我们将解释如何使用它们从旧索引切换到零停机时间的新索引。

    【讨论】:

    • 我更喜欢这个用例,而不是我想的那个。值得注意的是,您还可以使用别名将多个索引组合在一个别名下。
    • 谢谢你,但我仍然觉得我不太了解它。您能否用更“ELI5 方式”来解释它?
    【解决方案2】:

    @arhak 很好地涵盖了这个话题。 一个(至少)让我理解索引价值的用例是需要删除过时的文档,尤其是在使用time-based-indices 时。

    例如,您需要将应用程序的日志至少保留一年。您决定使用基于时间的索引,这意味着您使用以下格式保存到索引中:2018-02-logs, 2018-03-logs 等。为了能够在每个索引中搜索,您创建以下别名:

    POST /_aliases
    {
     "actions": [{ 
         "add": {
              "alias": "current-logs", "indices": [ "2018-02-logs","2018-03-logs" ]
            }  
      }]
    }
    

    查询如下:

    GET /current-logs/_search
    

    另一个优点是您可以非常轻松地删除过期值:

    POST /_aliases
    {
      "actions": [
    
          { "remove": { "alias": "current-logs",  "index": "logs_2018-01" }}
      ]
    }
    

    DELETE /logs_2018-01

    【讨论】:

    • 这是一个有趣的概念,但如果觉得“别名”是一种临时助手,而不是 Elasticsearch 中总是使用的静态事物。因为在您的示例中,我想让它使用“当前日志”来获取最近两个月的索引。但是从一个例子来看,一旦 2018-04 到来,这个别名就会过时。我希望我正确地解释了我的问题
    【解决方案3】:

    创建别名基本上是为了对一组索引进行分组,并使它们无论名称如何都可以访问。是指向一组索引的指针。您还可以将查询/条件应用于所有这些索引。在始终对同一组索引执行查询或创建仪表板时,它非常有用。此外,如果将来您更改作为别名一部分的索引的名称,最终用户将不会注意到该更改,因为它对他们来说是透明的,您只会更新指针。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-31
      • 2021-11-07
      • 1970-01-01
      • 2021-11-30
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多