Вам необходимо реализовать Индекс ролловера .
Я бы посоветовал вам обратиться к ссылке, чтобы увидеть, как это можно сделать. По сути, вы можете просто выполнить приведенные ниже запросы, чтобы реализовать и протестировать эту 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
}
}
Что произойдет, если упростится поиск и создаст индекс logs-000002
через день и так далее, и так далее.
API принимает одно псевдоним и список условий.
псевдоним должен указывать только на один индекс. Если индекс удовлетворяет
указанные условия, то создается новый индекс и псевдоним
переключился на указатель на новый индекс.
На самом деле вы можете проверить опрокидывание, используя 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 ролловера.
См. Эту ССЫЛКУ для получения дополнительной информации об этом
Надеюсь, это поможет!