【问题标题】:solr pagination and groupingsolr 分页和分组
【发布时间】:2012-08-23 15:06:47
【问题描述】:

我正在使用 LucidWorks 和 Solr 在一个大型且多样化的 Web 应用程序中实现搜索,该应用程序具有许多不同类型的页面。该规范要求按页面类型分组的单个搜索结果页面,并在每个组中对搜索结果进行分页。

我可以很容易地用这样的东西分组

q=[searchterm]&group=true&group.field=[pagetypefield]

返回很好的分组结果。

我也可以:

q=[searchterm]&group=true&group.field=[pagetypefield]&group.offset=[x]&group.limit=[y]

这将从结果 x 开始,每组得到 y 个结果

但是,我希望能够为每个组提供偏移量和限制,因为我可能希望获得第 1 组的结果 0-4 和第 2 组的结果 5-9。

[pagetypefield] 的值是已知值的列表,因此我可以执行多个查询,例如:

q=[searchterm]&group=true&group.query=[pagetypefield]:[value]&group.offset=[x]&group.limit=[y]

对于[pagetypefield] 的每个已知值

或者不使用 group.offset 并且在我的示例中为两个组获取结果 0-9 并丢弃我不需要的结果。

我不太喜欢这两个选项,但我无法在文档中找到一种方法来指定每个组的偏移量和限制。

任何建议将不胜感激。

【问题讨论】:

  • 如果有人可以通过确认我想做的事情无法完成来提供帮助,我会接受这个答案,这样至少我不会浪费时间追求死胡同。

标签: solr lucene


【解决方案1】:

我已经从 LucinWorks 确认我想要做的事情是不可能的,他们推荐了多重搜索解决方案,因为第一次搜索将被缓存,因此后续搜索会非常快。

我想我最终要做的是将搜索结果分组,为每个组获取前 n 个结果,然后使用 ajax 对每个组进行分页。

【讨论】:

  • 嘿,你最终是如何实现分页的。我有一个用例,其中我正在使用组搜索,我需要总共 20 个结果,一个组的前 3 个结果(可以有较低的分数),以及其他 17 个基于分数的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2015-06-14
  • 1970-01-01
  • 2011-09-20
  • 2011-05-17
  • 1970-01-01
相关资源
最近更新 更多