您需要实现Rollover Index。
我建议您参考链接以了解如何完成。基本上你可以简单地执行下面的查询来实现和测试这个Rollover Index 功能
第 1 步:创建初始索引
PUT /logs-000001
{
"aliases": {
"logs_write": {}
}
}
第 2 步:执行 Rollover API
POST /logs_write/_rollover
{
"conditions" : {
"max_age": "1d",
"max_docs": 1000,
"max_size": "5gb"
},
"settings": {
"index.number_of_shards": 2
}
}
会发生什么,elasticsearch 会在一天后继续创建索引logs-000002,依此类推。
API 接受单个别名和条件列表。这
alias 必须仅指向单个索引。如果指数满足
指定条件,然后创建一个新索引,别名为
切换到指向新索引。
您实际上可以使用dry_run 测试翻转,如下面的查询所示。
试运行查询
POST /logs_write/_rollover?dry_run
{
"conditions" : {
"max_age": "1d",
"max_docs": 1000,
"max_size": "5gb"
}
}
当您运行此测试查询时,请注意以下格式的响应。它将显示如果在一天后发生翻转会发生什么。请注意,当您执行dry run 时,它不会创建logs-000002。
试运行响应
{
"acknowledged": false,
"shards_acknowledged": false,
"old_index": "logs-000001",
"new_index": "logs-000002",
"rolled_over": false,
"dry_run": true,
"conditions": {
"[max_age: 1d]": false,
"[max_docs: 1000]": false,
"[max_size: 5gb]": false
}
}
重要提示:
翻转不会自动发生。必须使用 crontab 或此类调度工具手动完成,并不断检查以编程方式执行翻转 API 的条件。
请参阅此LINK 了解更多信息
希望对你有帮助!