让我们来看看下面的场景。
我有一个别名A1,指向索引I1。现在,我想使用ES的rollOver特性并创建索引I2,并将别名指向I1和I2。
我可以一直滚动并使我的别名A1指向最后两个索引,或者通常是最后的'n‘索引吗?
发布于 2017-05-15 17:45:51
您可以将一个别名指向多个索引,如下所示:
POST /_aliases
{
"actions" : [
{ "add" : { "indices" : ["l1", "l2"], "alias" : "A1" } }
]
}甚至将别名指向通配符索引模式,如下所示:
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "l*", "alias" : "A1" } }
]
}编辑:通过滚动,您只能将别名指向一个索引--最新索引。如果您想要一个指向最后2个索引、n个索引或所有匹配模式l*的索引的别名,那么您必须使用我前面显示的请求创建一个额外的别名。
编辑2:如果我想在索引中维护30天的日志,我就会这样做。我坚持将索引命名为'l1‘和别名'A1’。在头30天之后,将创建一个名为l000002的新索引(命名约定将增加最后一个索引的数量,并将长度为6的零填充),别名A1将指向索引l000002。我会创建第二个别名来引用'l*‘,就像您最初希望的那样。
PUT /l1
{ "aliases": { "A1": {} } }
POST /A1/_rollover
{ "conditions": { "max_age": "30d" } }
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "l*", "alias" : "A2" } }
]
}https://stackoverflow.com/questions/43985624
复制相似问题