Лучше всего использовать Index Life Управление, включенное в базовую лицензию и включенное по умолчанию в Elastic v7.3+.
Вы можете установить прокрутка для количества документов (я поставил 5 максимум документов) :
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_docs": 5
}
}
}
}
}
}
Теперь я создаю шаблон с политикой my_policy
:
PUT _template/my_template
{
"index_patterns": [
"my-index*"
],
"settings": {
"index.blocks.read_only" : true,
"index.lifecycle.name": "my_policy",
"index.lifecycle.rollover_alias": "my-index"
}
}
Обратите внимание, что я установил параметр "index.blocks.read_only" : true
, потому что при применении ролловера будет создан новый индекс с параметром read_only.
Теперь я могу создать свой индекс:
PUT my-index-000001
{
"settings": {
"index.blocks.read_only": false
},
"aliases": {
"my-index": {
"is_write_index": true
}
}
}
Вот и все ! После 5 документов он создаст новый индекс только для чтения, и псевдоним будет записываться в этот.
Вы можете протестировать по индексу некоторые новые документы с псевдонимом:
PUT my-index/_doc/1
{
"field" : "value"
}
Кроме того, по умолчанию политика ilm будет применяться каждые 10 минут, вы можете изменить это, чтобы протестировать с помощью:
PUT /_cluster/settings
{
"persistent": {
"indices.lifecycle.poll_interval": "5s"
}
}
person
Luc E
schedule
01.04.2020