首页 > 解决方案 > 如何为 ElasticSearch 中的索引设置 TTL

问题描述

我想知道如何设置 TTL,以便 ES 集群自动删除每个超过 30 天的文档。

我知道以前的版本使用 TTL 字段来管理这个,但现在它似乎被删除了。

我正在使用 NEST.NET 6.4.0

标签: c#.netelasticsearchnest

解决方案


TTL 在 5.0 中被移除

您可以使用 curator ,将其作为 cronjob 或 jenkins job ,并一起删除旧索引。

curator_cli --host  localhost --port 9200 --http_auth "$USER":"$PASS" \
delete_indices --ignore_empty_list --filter_list '[{"filtertype":"age","source":"creation_date","direction":"older","unit":"days","unit_count":30}, \
{"filtertype":"pattern","kind":"prefix","value":"livelogs"}]'

也可以看看:

有没有办法在弹性搜索索引中设置 ttl


推荐阅读