【问题标题】:Why are Elasticsearch aliases not unique为什么 Elasticsearch 别名不是唯一的
【发布时间】:2015-02-24 23:25:35
【问题描述】:

Elasticsearch 文档 describes aliases 作为零停机时间重新索引数据的功能:

  1. 创建新索引并对整个数据进行索引
  2. 让别名指向新索引
  3. 删除旧索引

如果别名是唯一的,这将是一项很棒的功能,但一个别名可能指向多个索引。考虑到旧索引的删除可能会失败,我的应用程序可能会与两个可能不同步的索引说话。更糟糕的是:应用程序对此一无所知。

为什么可以重用别名?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    它允许您轻松拥有多个索引,这些索引既可以单独使用,也可以与其他索引一起使用。例如,当有一个日志索引时,这很有用,有时您想查询最新的(日志最近别名),有时又想查询所有内容(日志别名)。可能还有很多其他用例,但对我来说这是第一个弹出的。

    根据文档,您可以同时发送删除和添加请求:

    curl -XPOST 'http://localhost:9200/_aliases' -d '
    {
        "actions" : [
            { "remove" : { "index" : "test1", "alias" : "alias1" } },
            { "add" : { "index" : "test2", "alias" : "alias1" } }
        ]
    }'
    

    成功后,您可以删除旧索引,如果失败,您将有一个额外的索引占用一些空间,直到它被清除。

    【讨论】:

    • 感谢您的回答!日志示例听起来像是一个非常好的用例,但我仍然不确定是否应该使用它来定期重新索引我的数据。感觉就像 elasticsearch 允许我创建两次索引一样。
    猜你喜欢
    • 2016-02-14
    • 2018-08-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2019-04-28
    • 1970-01-01
    相关资源
    最近更新 更多