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

Mat*_*odd 18 elasticsearch

ElasticSearch文件上写着:

别名也可以映射到多个索引,并且在指定别名时,别名将自动扩展为别名索引.

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

多个写别名失败:

$ curl -XGET 'http://localhost:9200/_aliases'
Run Code Online (Sandbox Code Playgroud)

结果:

{
  "dev_01": {
    "aliases": {
      "dev_read": {},
      "dev_write": {}
    }
  },
  "dev": {
    "aliases": {
      "dev_write": {}
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

使用单个别名:

$ curl -XGET 'http://localhost:9200/_aliases'
Run Code Online (Sandbox Code Playgroud)

结果:

{
  "dev_01": {
    "aliases": {
      "dev_read": {},
      "dev_write": {}
    }
  },
  "dev": {
    "aliases": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*odd 21

答案是不

所以看起来我应该更深入地对此进行分类,但我的客户从es获得的响应是​​:

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

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

起初似乎暗示你可以:

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

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

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

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

  • @javaanna:我宁愿说:因为它没有实现。我可以想出几种方法来指定写入位置和方式。 (2认同)
  • 奇怪的是,我几乎可以肯定这曾经适用于 ElasticSearch 的早期版本。我曾经依赖这种行为,以便在完整索引重建正在进行时增量更新可以流向两个索引。 (2认同)