1

我们有一个网站,您可以在该网站上搜索来自不同商店的大量产品。假设我们每个结果页面有 5 个产品,并且搜索的 10 个最佳匹配具有相同的分数。其中 8 件产品来自一家商店 (A),另外两种产品来自另外两家商店 (B,C)。

我们经常得到的是(表示本店产品的字母)

  1. 一种
  2. 一种
  3. 一种
  4. 一种
  5. 一种

---- 第二个结果页 ----

  1. 一种
  2. 一种
  3. C
  4. 一种

但我们想要得到的是这样的:

  1. 一种
  2. C
  3. 一种
  4. 一种

---- 第二个结果页 ----

  1. 一种
  2. 一种
  3. 一种
  4. 一种
  5. 一种

编写函数查询似乎是一种选择 http://www.solrtutorial.com/custom-solr-functionquery.html

实现这一目标的最佳方法是什么?

4

1 回答 1

2

您可以使用字段折叠按商店对结果进行分组,并将结果显示为组或展平列表(取决于您想要的方式)。

我看到的另一个帮助用户查看来自多个组的结果的技巧是使用 Facets。你可以有一个侧边栏(或类似的东西)来做两件事:

  1. 默认情况下,它让用户知道结果中有其他过滤条件(例如商店)。当对结果进行分页时,这很有帮助。

  2. 在存在方面的情况下,用户可以选择她/他希望应用的任何标准,从而使您不必执行繁重的基于场景的逻辑。

在此处阅读有关刻面的更多信息。

编辑:

如果必须使用自定义排序逻辑,可以使用 Functions 将其写下来,并在查询 Solr 时在排序中使用。是来自文档的参考。

于 2013-09-03T03:06:18.157 回答