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