我们说,Solr文档的架构包含id
和score
。对于每个id
我都会根据事件触发更新分数。但是我希望分数在一周左右后变为0或者可能逐渐减少。基本上我需要为该score
字段设置大约一周的TTL。或者我需要score
的值以某种方式依赖于时间。
我没有为文档设置TTL,因为我想在一周后保留id
而不是score
。怎么能实现呢?
我在互联网上浏览了很多,无法找到解决方案。这就是为什么转向堆栈溢出的专家。
请帮助!!
答案 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