别名也可以映射到多个索引,当指定别名时,别名会自动扩展到别名索引。
但是当我尝试为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是否支持写入多个索引?如果指向多个索引,别名是只读的吗?
答案 0 :(得分:18)
答案是否
所以看来我应该更深入地对此发出哔哔声,但我的客户从es获得的响应是:
ElasticSearchIllegalArgumentException [别名[dev_write]有多个与之关联的索引[[dev_01,dev]],无法执行单个索引op
希望文档在前面更加明确,因为他们让我有点困惑
起初似乎暗示你可以:
索引别名API允许使用名称对索引进行别名,所有 API会自动将别名转换为实际索引名称。别名也可以映射到多个索引...
将别名与多个索引关联只需几个添加操作......
在页面下方告诉您不能:
索引指向多个索引的别名是错误的。