提升范围内的solr项目:是分面搜索选项吗?

时间:2012-12-02 12:25:39

标签: search solr lucene facet solr-boost

我希望在Solr中有一个很长的项目列表,并且具有非常具体的顺序。我没有Solr方面的经验:它们是一个在日期范围内对结果进行分组的好方法,在这个范围内我可以稍微提升各种项目吗?

订购原则

  1. 所有项目通常必须按时间顺序排列
  2. 此订单必须严格按照特定范围
  3. 在此类范围内,项目可能会获得更多优先级
  4. 在此范围内,项目可能具有超高优先级
  5. 在完整列表中,某些项目可能超出其范围并坚持顶部
  6. 配置示例

    所以,如果我有一个项目表,它可能看起来像这样:

    1. 粘性物品100%在顶部
    2. 活动的博彩比博客更高
    3. 精选始终位于范围内的顶部
    4. 范围设置为一周(7天)
    5. 这可能如下所示(示例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查询:)

1 个答案:

答案 0 :(得分:0)

您可以做的一件事是使用分组功能。您将一年中的星期(GregorianCalendar WEEK_OF_YEAR)存储在新索引字段中,然后按此对结果进行分组。在组内部,您可以定义正常的相关性计算。

以下是一个示例链接:http://wiki.apache.org/solr/FieldCollapsing