[英]Solr: boosting by date not returning in right order, is something wrong with my boost?
我正在使用Solr搜索事件,并且我需要按日期对事件进行增强,以便距离事件越近的当前日期,与具有相同名称但日期较晚的事件相比,其得分越高。 因此,2015年1月的“校友聚会”应该比2015年10月的“校友聚会”出现在结果列表上更高。
我阅读了Solr相关性常见问题解答,这是我在solr中使用的查询:
?q={!boost%20b=recip(abs(ms(NOW,dt_startdate)),3.16e-11,1,1)}searchterms&sort=score desc
它肯定会更改结果的顺序,但是顺序是错误的。 例如,我给我返回了四个结果的搜索之一是将它们返回为2012、2013、2014、2015,但应该相反(2015年4月vs 2014年4月,应该首先显示)。 我尝试只是将其更改为
sort=score asc
但是,与返回的顺序相反,该命令完全不同。 它去了2014年,2015年,2012年,2013年
我的提振有什么问题? 我相信,如果没有提高,它们的相关性应该都是相同的,因为包含我要搜索的术语的字段对于每个术语都是完全相同的。 实际上,在我加薪之前,订单更好 。 虽然不正确,但它到2014年,2015年,2013年,2012年的时间比现在更近了。
编辑:我意识到提升不一定会按日期顺序进行,这很好,但是9个月前的事件肯定会出现在2012年之前,特别是因为没有提升,2014年的事件就排在了最前面。名单。 目前,2012年将首先出现。
编辑2(重要) :好的,所以我决定检查有无加速情况下我的四个项目的得分。
2012:0.37118697提升:0.005060354
2013:0.4639837提升:0.005060354
2014:0.55678046提升:0.0044278097
2015:0.4639837提升:0.0044278097
因此,您可以看到,提升实际上使旧版本的旧版本 变得更糟 。 为什么这样做呢? 我真的不太了解提升的效果,所以我不知道为什么它会使分数变得更糟。
听起来您只是想根据日期对搜索进行排序,而不要使用增强功能-增强功能是使新文档趋向更高的趋势,而不是以降序/升序排列。
对于提升示例,将对不超过一年(iirc)的文档应用不同的提升,而较旧的文档将不会从该条款中获得任何提升。 请记住,其他搜索字词也会应用提升,并且这些子句的得分可能会比年龄增长的提升更高/更相关。
日期提升不是一门精确的科学,并且还必须根据您的其他提升来应用提升值(通过更改recip调用中的值或通过使用^ weight对其进行优先级排序)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.