我有一个事件搜索引擎,其中存储年龄范围(年龄从,年龄到)和日期范围(日期从,日期到)。
我想给更具体的事件打更高的分数。年龄范围和日期范围的差异越小,分数越高。即(1)年龄范围为4-5的项目应具有比年龄范围为3-6的项目更高的分数。(2) 10月至11月之间的事件得分应高于10月至12月之间的事件。
我想知道是否有可能在索引时间或搜索期间提高分数。在索引期间提高分数将是很好的,因为无论搜索查询如何,文档的年龄范围和日期范围都是固定的。
我在应用程序中使用spring data solr将数据存储到solr中。
发布于 2015-07-31 23:46:59
一种可能的方法是在查询时使用以下方法进行提升:
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找到一个合适的数值
https://stackoverflow.com/questions/31747722
复制相似问题