我希望在为我的内容编制索引的同时为最新数据做出决定。例如 从现在到过去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>
答案 0 :(得分:3)
我建议使用查询/搜索时间提升代替您的用例。主要优点是您不需要定期重新索引文档以调整提升。请参阅Date Boosting和"How can I boost the score of newer documents" wiki提示