有没有一种方法可以利用python库在aws elasticsearch中的文档上设置ttl?

yrwegjxp  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(1)|浏览(321)

我无法在aws elasticsearch中使用python elasticsearch库对文档设置ttl。
我查看了库本身的代码,没有任何理由支持它,我还没有在google上看到任何答案。

qybjjes1

qybjjes11#

没有,如果您愿意,可以使用索引管理策略,它将在索引级别操作,而不是在文档级别。你有一点蠕动的空间,虽然你可以创建一个模式 data-* 有超过一个索引, data-expiring-2020-... , data-keep-me .
可以将模板应用于图案 data-expiring-* 并设置一个在20天后删除索引的转换。如果你每天滚动到一个新的索引,你将在一天结束时删除最早的一天,一旦它超过20天。
这种方法更可取,因为如果您要删除可能消耗集群大量容量的单个文档,而不是删除整个碎片。其他nosql数据库(如dynamodb)也以类似的方式运行,通常您所能做的就是向数据库中添加另一个字段 docs 例如 deletionDate 并将其添加到查询中,以筛选出标记为删除的文档,但这些文档在索引中仍然存在,因为删除作业尚未清理它们。这也是dynamodb中ttl的行为方式,ttl过期时数据不会被删除,而是成批删除以提高性能。

相关问题