我定义了以下滚动索引:
POST /_aliases
{
"actions": [
{
"add": {
"index": "elmah_*",
"alias": "elmah_all"
}
}
]
}
这个功能现在很好用,它提取了我所有的现有月度滚动索引。问题是当索引滚动到新月份时,它会自动生成新的索引elmah_2016_06
,但是我的别名并没有提取这个新索引。每个月我都需要通过运行以下命令来更新别名:
POST /_aliases
{
"actions": [
{
"add": {
"index": "elmah_2016-06",
"alias": "elmah_all"
}
}
]
}
有没有办法让ES自动拾取这个?
3条答案
按热度按时间afdcj2ne1#
是的,你可以使用模板。
空对象是必要的,因为JSON需要
field : value
。只要创建了匹配的索引(基于
template
参数),它就会自动将模板应用到该索引。在这种情况下,模板所做的唯一事情就是向该索引添加别名。您也可以use a template to set settings and mappings。
af7jpaap2#
pickypg提供的答案是正确的,但有一个小错误。应该是
"aliases"
,如下所示:n8ghc7c13#
ElasticSearch〉= 7.8
从Elasticsearch 7.8开始,引入了composable index templates,并且不再使用以前的模板语法(至少对于索引模板):
!旧版索引模板已过时,请改用可组合的模板。
#!使用了不推荐使用的字段[template],已替换为[index_patterns]
创建一个索引模板(名称为
my-index-template
),该模板自动将别名my-alias
添加到与模式my-index-*
匹配的新索引中,其语法如下:与前面的语法一样,其行为是相同的:每当新索引与
index_patterns
参数中指定的模式(或 patterns,因为它可以是多个1)匹配时,模板将自动应用于该索引。除了添加别名之外,可组合索引模板还可以用于其他操作,其中包括定义设置或Map,就像过去一样。
ElasticSearch〈7.8
为了完整起见,正如在现有答案中所描述的,在可组合索引模板出现之前的语法是: