提升范围内的解决方案项目:facet搜索是一种选择吗



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

订购原则

  1. 所有项目通常必须按时间顺序排列
  2. 此订单必须严格按照特定范围执行
  3. 在这样的范围内,项目可能会获得更高的优先级
  4. 在此范围内,项目可能具有超高优先级
  5. 在完整的列表中,有些项目可能超出了它们的范围,并停留在顶部

示例配置

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

  1. 粘性物品100%位于顶部
  2. 活动的prio比博客高
  3. 特色总是在一个范围内名列前茅
  4. 范围设置为一周(7天)

这可能看起来像这样(示例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天)。特色节目永远不会像活动一样超出一周的范围。

我听说过facets,但不确定这是否能解决我的问题。由于我是solr的门外汉,很难弄清楚我是否能做到这一点。我看过solr wiki,但所有的新术语都让我对这个想法的搜索有点混乱。

我可能会通过使用"分页"作为日期范围来解决这个问题(因此从:[date]到:[date'进行搜索),从而自己创建一个"方面"。这样容易吗?正如你所看到的,我对facets和复杂的solr查询一无所知:)

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

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

相关内容

  • 没有找到相关文章

最新更新