我希望在Solr中有一个很长的项目列表,并且具有非常具体的顺序。我没有Solr方面的经验:它们是一个在日期范围内对结果进行分组的好方法,在这个范围内我可以稍微提升各种项目吗?
订购原则
配置示例
所以,如果我有一个项目表,它可能看起来像这样:
这可能如下所示(示例1 ):
sticky | 2012-11-01
blog 2 | 2012-12-02
blog 1 | 2012-12-01
或(示例2 ,虚线仅表示星期障碍):
blog 5 | 2012-11-26
---------------------
featured | 2012-11-19 <<< featured are at the top in week 19-25 Nov
blog 4 | 2012-11-23
blog 3 | 2012-11-22
blog 2 | 2012-11-21
blog 1 | 2012-11-19
---------------------
featured | 2012-11-12
或(示例3 ):
event | 2012-11-28 <<< events have a bit more prio in week 26 Nov - 2 Dec
blog 5 | 2012-11-29
blog 5 | 2012-11-28
blog 5 | 2012-11-26
---------------------
event | 2012-11-20 <<< events have a bit more prio in week 19-25 Nov
blog 4 | 2012-11-23
blog 3 | 2012-11-22
event | 2012-11-19 <<< events have a bit more prio in week 19-25 Nov
blog 2 | 2012-11-21
blog 1 | 2012-11-19
---------------------
blog | 2012-11-18
(澄清一下,事件的优先级(1天或2天或x%只是微调的一部分,此时此问题不属于我的问题)
问题
现在的问题是:我知道我可以提高每个字段或每个字段值的项目,一定数量的或一个高值可以将其推到顶部。但我必须将此限制在一定范围内(在示例中为7天)。特色可以从不超出一周的范围,就像事件一样。
我听说过方面,但我不确定这是否可以解决我的问题。由于我是solr的外行,很难弄清楚我是否能做到这一点。我查看过solr wiki,但所有新术语都让我对这个想法有点混乱。
我可以通过使用“分页”作为日期范围来解决这个问题(所以从[日期]搜索到:[日期]),因此我自己创建了一个“方面”。那更容易吗?如你所见,我不知道关于facet和复杂的solr查询:)
答案 0 :(得分:0)
您可以做的一件事是使用分组功能。您将一年中的星期(GregorianCalendar WEEK_OF_YEAR)存储在新索引字段中,然后按此对结果进行分组。在组内部,您可以定义正常的相关性计算。