我定义了以下滚动索引:
POST /_aliases
{
"actions": [
{
"add": {
"index": "elmah_*",
"alias": "elmah_all"
}
}
]
}
今天效果很好,它收集了我所有现有月度滚动指数。问题是,当索引滚动到新的月份时,它会自动生成elmah_2016_06
的新索引,但我的别名不会获取此新索引。每个月我都需要通过运行这个来更新我的别名:
POST /_aliases
{
"actions": [
{
"add": {
"index": "elmah_2016-06",
"alias": "elmah_all"
}
}
]
}
有没有办法让ES自动选择它?
答案 0 :(得分:1)
是的,你可以使用模板。
PUT /_template/my_elmah_template
{
"template" : "elmah_*",
"alias" : {
"elmah_all" : { }
}
}
空对象是必要的恶,因为JSON需要field : value
。
每当创建匹配的索引(基于template
参数)时,它就会自动将模板应用于它。在这种情况下,模板唯一要做的就是为它添加一个别名。
答案 1 :(得分:1)
pickypg提供的答案是正确的,但是有一个小错误。应为"aliases"
,如下所示:
PUT /_template/my_elmah_template
{
"template" : "elmah_*",
"aliases" : {
"elmah_all" : { }
}
}