【发布时间】:2012-11-30 14:56:08
【问题描述】:
假设我正在运行一个按分数排序的 solr 查询(默认)。我有一个字段“品牌”,其中包含福特、通用、丰田等。我希望返回查询结果,以便任何特定品牌只能有三个连续的结果?即使我查询的前 100 个结果是 Toyota,我仍然希望第 101 个元素被取出并显示在第 4 位(这样只有三辆 Toyota 汽车可以按顺序显示)。
我需要能够翻阅结果。
我正在使用 RoR/sunspot 仅供参考。
这可能吗?
【问题讨论】:
假设我正在运行一个按分数排序的 solr 查询(默认)。我有一个字段“品牌”,其中包含福特、通用、丰田等。我希望返回查询结果,以便任何特定品牌只能有三个连续的结果?即使我查询的前 100 个结果是 Toyota,我仍然希望第 101 个元素被取出并显示在第 4 位(这样只有三辆 Toyota 汽车可以按顺序显示)。
我需要能够翻阅结果。
我正在使用 RoR/sunspot 仅供参考。
这可能吗?
【问题讨论】:
不确定你是否能得到你想要的,但我建议你看看result grouping。它允许您对特定字段具有相同值的结果进行分组,例如 brand 在您的情况下。然后,您可以通过group.limit 参数(默认为 1)定义每个品牌需要多少结果。然后,您可以通过 group.offset 参数对分组结果进行分页。
只要您的 brand 字段不是多值的,它就应该可以工作。
【讨论】: