一尘不染

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

elasticsearch

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是否支持写入多个索引?如果别名指向多个索引,是否为只读?


阅读 1405

收藏
2020-06-22

共1个答案

一尘不染

答案是不

所以看来我应该更深入地分析这声蜂鸣声,但是我的客户从es得到的响应是:

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

只是希望文档能更明确一些,因为它们让我有些困惑

乍一看似乎意味着您可以:

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

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

在页面的更下方,您将知道您无法执行以下操作:

索引指向一个以上索引的别名是错误的。

2020-06-22