我有一个事件搜索引擎,可以存储年龄范围(年龄,年龄)和日期范围(日期,日期,日期)。
我想为更具体的事件提供更高的分数。年龄范围和日期范围的差异越小,分数越高。即(1)年龄范围4-5的事件应该比年龄范围3-6的事件得分高。 (2)10月至11月期间的事件得分应高于10月至12月之间的事件。
我想知道是否有可能在索引时间或搜索期间提高分数。在索引时间内提高分数会很棒,因为无论搜索查询如何,文档的年龄范围和日期范围都是固定的。
我在我的应用程序中使用spring data solr将数据存储到solr。
答案 0 :(得分:1)
可能的方法是在查询时使用以下方式提升:
q={boost b=recip(ms(age_from,age_to),k,1,1)}...
ms
以毫秒为单位返回日期差异see here
recip(x,m,a,b)
返回a/(m*x+b)
,因此与日期差异的倒数成比例。
我认为您必须为k