我想在elasticsearch模板中为索引添加别名,但别名并不总是固定的。它以客户端ID为前缀。由于数据的大小,我们分别为每个客户创建月度索引,我希望单个查询来自所有月度索引的数据。但是,由于每个客户端都有不同的索引,因此别名必须由clientId预先添加。我怎样才能做到这一点?
例如:我的索引是:
client1_01_18_user_location/user_location
,client1_02_18_user_location/user_location
和
client2_01_18_user_location/user_location
,client2_02_18_user_location/user_location
1月份的数据转到第1个索引,2月份的数据转到第2个索引。我希望根据为哪个客户端插入数据来创建别名client1_ul
或client2_ul
。
我如何实现这一目标?
答案 0 :(得分:1)
你可以用这样的POST来解决:
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "client1*", "alias" : "client1_ul" } }
]
}
此调用将表单client1 *的所有索引添加到别名client1_ul,可用于查询所有月份。
每个用户都需要一个POST。
否则,您可以为每个客户端使用索引template,如果在添加别名时不存在所有索引。模板可以提供别名:
PUT _template/template_1
{
"index_patterns" : ["client1*"],
"mappings" : {
... optional
},
"aliases" : {
"client1_ul" : {}
}
}
通过这种方式,别名将在创建索引时添加到每个索引,由elasticsearch自动添加。