是否可以使用ElasticSearch别名写入多个索引?

时间:2013-10-29 15:00:44

标签: elasticsearch

ElasticSearch Docs读取:

  

别名也可以映射到多个索引,当指定别名时,别名会自动扩展到别名索引。

但是当我尝试为2个索引添加别名并写入两个索引时,似乎都没有更新文档。如果我删除其中一个别名,它将正确写入仍然存在的别名。

多个写别名失败:

$ curl -XGET 'http://localhost:9200/_aliases'

结果:

{
  "dev_01": {
    "aliases": {
      "dev_read": {},
      "dev_write": {}
    }
  },
  "dev": {
    "aliases": {
      "dev_write": {}
    }
  }
}

使用单个别名:

$ curl -XGET 'http://localhost:9200/_aliases'

结果:

{
  "dev_01": {
    "aliases": {
      "dev_read": {},
      "dev_write": {}
    }
  },
  "dev": {
    "aliases": {}
  }
}

elasticsearch是否支持写入多个索引?如果指向多个索引,别名是只读的吗?

1 个答案:

答案 0 :(得分:18)

答案是否

所以看来我应该更深入地对此发出哔哔声,但我的客户从es获得的响应是​​:

  

ElasticSearchIllegalArgumentException [别名[dev_write]有多个与之关联的索引[[dev_01,dev]],无法执行单个索引op

希望文档在前面更加明确,因为他们让我有点困惑

起初似乎暗示你可以:

  

索引别名API允许使用名称对索引进行别名,所有 API会自动将别名转换为实际索引名称。别名也可以映射到多个索引...

     

将别名与多个索引关联只需几个添加操作......

在页面下方告诉您不能:

  

索引指向多个索引的别名是错误的。