我浏览了Java-doc @ DocExpirationUpdateProcessorFactory。它说:
DocExexpationUpdateProcessorFactory 提供了两个相关的功能 到可以单独使用或在 组合:
- 从"生存时间"(TTL( 计算文档的过期字段值
- 根据过期字段定期从索引中删除文档
但它没有指定如何从 ttl 字段计算过期字段值。
任何人都可以帮助了解它是如何计算的?
ttlFieldName
- 此过程应在处理的每个文档中查找的字段的名称,默认为_ttl_
。如果文档中存在指定的字段名称,则文档字段值将解析为相对于 NOW 的日期数学表达式,并且结果将使用expirationFieldName
添加到文档中。
这意味着您可以在_ttl_
字段中使用+2 HOURS
等术语,使文档在编制索引后的两小时内过期。然后,此日期值将存储在expirationFieldName
字段中。
来自Cloudera关于该功能介绍的文档:
当前时间是:
2016-10-26 20:14:00
_ttl_
定义为:+2小时这将导致过期值为
2016-10-26 22:14:00
在Lucidworks中对该功能的描述中还有更多示例:
{ "id" : "live_2_minutes_b",
"time_to_live_s" : "+120SECONDS"
},