2014-05-13 94 views
1

我有以下“问题”。我已经启用使用索引映射和Im把文件带TTL参数TTL和它的作品...有点:elasticsearch:文档TTL <indices.ttl.interval

  • 文件过期和删除
  • 问题看起来如果设置了TTL值越小而不是indices.ttl.interval参数,它只会在每个时间间隔过期

这是如何工作的?我假设即使文档尚未实际清除(每隔一段时间都会发生),如果TTL已过,GET仍会返回“null”。

我做错了什么?我不愿意在indices.ttl.interval降低到最小TTL我计划使用(1-10秒),因为我认为这将提上指数退出负载

感谢,

桑德

回答

2

对,就是它应该如何工作。 indices.ttl.interval实际上是purger线程连续运行之间的等待。如果_ttl低于此值,则会看到文档并将其取回,直到在随后的purger运行中被删除。

解决此问题的方法是让purger线程运行更频繁,您可以通过降低indices.ttl.interval设置来实现此目的。否则,使用那些低ttl值没有多大意义。

+0

是的,这是我想的......嗯,听起来有点尴尬吧? ttl可以设置为毫秒(即使默认情况下,如果我阅读文档的权利),但我想不建议运行我经常想到的purger线程?我想我使用它的东西不应该(缓存WS调用外部系统);-) –

+0

@SanderSpilleman在我看来,ES可以更新来检查ttl过期时读出的结果,而不是完全忽略ttl分开从清洗线。我会向他们提交一个功能请求... – vipw

+0

我会考虑降低间隔时间,但是如果您正在使用搜索,则无论如何,您将不得不等待下一次刷新。得到它是一个不同的故事,因为它是实时的。打开[问题](http://www.github/com/elasticsearch/elasticsearch/issues)是有道理的,至少我们可以讨论在那里做什么有意义,谢谢! – javanna