我正在实施Solr dismax搜索,并使用此函数recip(ms(NOW,PubDate),3.16e-11,1000,1000)
进行日期提升。 Everthing工作正常,但只有一个问题。
如果在标题中重复搜索关键字,他们会得到比最近结果更多的分数。
e.g。 1)Title = solr lucene
日期= 1天
2)Title = solr lucene是最好的,爱solr lucene
日期= 15天
如果用户搜索“solr lucene”,那么#2只会在第一个位置出现,因为标题中会重复关键字。
我有太多的记录,这些记录是1,2或3天,它们甚至具有完全相同的标题“SOLR LUCENE”,但这些记录不会出现在第一页上,因为旧记录在标题中重复了关键字。
我不想完全按日期对结果进行排序。目前我正在这样排序。 sort =得分desc,日期asc
答案 0 :(得分:2)
如果您使用的是boost,则不应使用order子句。 如果你想让日期更具相关性,那么你的增强功能就是如此。这取决于你,对搜索结果的顺序的日期影响是多大的。
它还取决于您使用的dismax处理程序:
{!edismax boost=recip(pow(ms(NOW,PubDate),<val>),3.16e-11,1,1)}
在0到2之间放置一个值而不是<val>
占位符,其中0几乎是“按日期排序”,2是按相关性排序。
不确定,如果这适用于dismax,但它适用于标准solr搜索处理程序(使用上述示例之外的其他语法)和edismax。