如何在Solr文档中更新时将TTL设置为特定字段

时间:2016-11-15 22:35:27

标签: solr solrj solrcloud

我们说,Solr文档的架构包含idscore。对于每个id我都会根据事件触发更新分数。但是我希望分数在一周左右后变为0或者可能逐渐减少。基本上我需要为该score字段设置大约一周的TTL。或者我需要score的值以某种方式依赖于时间。

我没有为文档设置TTL,因为我想在一周后保留id而不是score。怎么能实现呢?

我在互联网上浏览了很多,无法找到解决方案。这就是为什么转向堆栈溢出的专家。

请帮助!!

1 个答案:

答案 0 :(得分:1)

TTL对于在达到TTL后自动删除文档非常有用,而不是修改一个字段。

您想要做的是按时间字段提升文档,如here所述。诀窍是recip功能。您可以进一步修改表达式,使其在超过一周等时提升0。

http://localhost:8983/solr/select?q={!boost b=recip(ms(NOW,manufacturedate_dt),3.16e-11,1,1)}ipod