在我们的应用程序中,我们每天创建Elasticsearch索引,索引模式为index-。 (例如index-17-09-2019)。但是我们的应用程序正在通过指向当前索引的别名访问索引。现在,通过cron作业完成对带有索引的别名的附加和删除。是否可以通过索引模板完成此操作,因为我们避免了cron作业。 我们可以通过索引模板将别名与索引附加在一起,但是我不确定是否可以通过索引模板将别名与旧索引分离,并将其添加到新索引中。
答案 0 :(得分:0)
这可以通过内置索引生命周期管理(ILM)来完成。您的应用程序将数据发送到索引别名,其余的工作将由ILM负责。
Here是其完成方式的说明,但基本上您需要:
1。创建ILM作业
PUT /_ilm/policy/my_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "1d"
}
}
}
}
}
}
2。创建附加了ILM策略的索引模板
PUT _template/my_template
{
"index_patterns": ["test-*"],
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1,
"index.lifecycle.name": "my_policy",
"index.lifecycle.rollover_alias": "test-alias"
}
}
3。通过创建初始化索引开始该过程
PUT test-000001
{
"aliases": {
"test-alias":{
"is_write_index": true
}
}
}
这将帮助您无需使用外部CRON作业即可每天处理新索引的创建。您还可以将政策扩展到以后,例如delete old indices after 7 days after rollover。
希望有帮助。