solr edismax 时间权重打分

时间:2022-05-16 19:31:47


在Solr里面,经常需要根据创建时间来打分。


打分公式有很多种,基本都是根据时间逐渐衰减。我使用的是一个简单有效的公式:1 / (1 + log(1 + (NOW - create_time)))  这里时间取小时


那么这个公式,如何在solr中使用呢?


参考edismax的FunctionQuery: https://wiki.apache.org/solr/FunctionQuery


recip(ln(sum(div(ms(NOW+8HOUR,create_time),3600000),1)),1,1,1)