23

ElasticSearch文档中写道:

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

但是,当我尝试将别名添加到 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 是否支持写入多个索引?如果指向多个索引,别名是否为只读?

4

1 回答 1

29

答案是不

所以看来我应该更深层次地分类这个哔哔声,但我的客户从 es 得到的响应是:

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

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

起初似乎暗示你可以:

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

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

页面下方让您知道您不能:

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

于 2013-10-29T18:10:13.693 回答