为什么Elasticsearch别名不是唯一的

时间:2015-02-24 15:04:18

标签: elasticsearch

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

  1. 创建新索引并索引整个数据
  2. 让您的别名指向新索引
  3. 删除旧索引
  4. 如果别名是唯一的,那么这将是一个很好的功能,但是一个别名指向多个索引是可能的。考虑到可能删除旧索引失败,我的应用程序可能会说两个可能不同步的索引。更糟糕的是:应用程序对此并不了解。

    为什么可以重用别名?

1 个答案:

答案 0 :(得分:2)

它允许您轻松拥有多个索引,这些索引既可以单独使用,也可以与其他索引一起使用。这有用,例如,当有一个日志索引时,有时你想查询最新的(logs-recent别名),有时想查询所有内容(日志别名)。可能还有很多其他用例,但这个用例首先出现在我身上。

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

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

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