这是我的索引模板(简体):
{
"template": "user-*",
"mappings" : {
"ESHOP_USER" : {
"properties" : {
"id" : {
"type" : "long"
},
"nickname" : {
"type" : "text"
},
"createTime" : {
"type" : "keyword"
},
"updateTime" : {
"type" : "keyword"
}
}
}
},
"aliases" : {
"user-test-alias" : {
"index" : "user-test*"
},
"user-prod-alias" : {
"index" : "user-prod*"
}
}
}
我想做什么:
名称模式为user-*
的索引共享相同的模板,我想将user-test-alias
添加到名称模式为user-test*
的所有索引,并将user-prod-alias
添加到所有名称模式的索引模式user-prod*
。
我得到的:
使用上述模板,我得到了名称模式为user-*
的所有索引,并获得了两个别名:user-test-alias
和user-prod-alias
。
我知道是将模板拆分成测试模板和生产模板,还是在创建索引后使用POST /_aliases
都可以解决问题。但是,只有一个索引模板有什么方法可以实现我的目标吗?
答案 0 :(得分:1)
我要做的是使用3个模板:
首先应用第一个模板(常见):
{
"template": "user-*",
"order": 0,
"mappings" : {
"ESHOP_USER" : {
"properties" : {
"id" : {
"type" : "long"
},
"nickname" : {
"type" : "text"
},
"createTime" : {
"type" : "keyword"
},
"updateTime" : {
"type" : "keyword"
}
}
}
}
}
接下来应用第二个模板(测试别名):
{
"template": "user-test-*",
"order": 1,
"aliases" : {
"user-test-alias" : {
"index" : "user-test*"
}
}
}
接下来应用第三种模板(产品别名):
{
"template": "user-prod-*",
"order": 1,
"aliases" : {
"user-prod-alias" : {
"index" : "user-prod*"
}
}
}