Есть ли способ установить TTL для документа в AWS Elasticsearch с использованием библиотеки python?

#python #amazon-web-services #elasticsearch

#python #amazon-web-services #elasticsearch

Вопрос:

Я все равно не могу найти, как настроить TTL для документа в AWS Elasticsearch с использованием библиотеки python elasticsearch.

Я просмотрел код самой библиотеки, и для этого нет никаких аргументов, и я еще не видел никаких ответов в Google.

Комментарии:

1. Я лично использую OpenStack Horizon для загрузки документов в облако, а API поддерживает TTL, что является сложной характеристикой для поиска.

2. Похоже _ttl , устарел. См. раздел Управление жизненным циклом индекса (ILM) .

Ответ №1:

Его нет, вы можете использовать политику управления индексами, если хотите, которая будет работать на уровне индекса, а не на уровне документа. У вас есть немного места для маневра, хотя вы можете создать шаблон data-* и иметь более 1 индекса , data-expiring-2020-... , data-keep-me .

Вы можете применить шаблон к шаблону data-expiring-* и установить переход для удаления индекса, скажем, через 20 дней. Если вы каждый день переходите к новому индексу, самый старый день будет удален в конце дня, когда пройдет более 20 дней.

Этот метод намного предпочтительнее, потому что, если вы удаляете отдельные документы, которые могут потреблять большое количество ресурсов вашего кластера, в отличие от удаления целых сегментов. Другие базы данных NoSQL, такие как DynamoDB, работают аналогичным образом, часто все, что вы можете сделать, это добавить другое поле к вашему docs , например, deletionDate и добавить его в свой запрос, чтобы отфильтровать документы, которые помечены для удаления, но все еще находятся в вашем индексе, поскольку задание на удаление еще не очистило их. Именно так ведет себя TTL в DynamoDB: данные удаляются не в момент истечения срока действия TTL, а в пакетах для повышения производительности.