索引时如何获取日期并进行比较

时间:2013-02-04 08:15:31

标签: solr

我希望在为我的内容编制索引的同时为最新数据做出决定。例如 从现在到过去6个月的内容应该有提升= 10 从过去6个月到过去12个月的内容应该有提升= 5 较旧的内容应该有boost = 0

我的日期保存为时间戳,因此唯一的问题是在编制索引时获取当前日期

我可以从我的函数中作为参数的行获取内容的日期,但我不知道如何获取当前日期并进行比较。应该是这样的吗?

还有一个问题

有没有办法检查提升?我的意思是我可以监控提升的方式吗?导致使用带有几千篇文章的结果列表很难确定

//编辑答案

GOT IT

脚本应如下所示(这是过去1年及以上的

<script>
<![CDATA[
function s1(row)    {
var curTime = parseInt(new Date().getTime()/1000);
var itemDate = row.get('publication_date');
if(itemDate >= (curTime - 31104000)) {
    row.put('$docBoost', 40);
} else {
    row.put('$docBoost', 20);    
}

return row;
}
]]>
</script>

1 个答案:

答案 0 :(得分:3)

我建议使用查询/搜索时间提升代替您的用例。主要优点是您不需要定期重新索引文档以调整提升。请参阅Date Boosting"How can I boost the score of newer documents" wiki提示