4

我在刻面方面有问题。想象一下这种情况。产品可以属于多个类别。这是刻面的常见行为:

类别

  • 安卓 (25)
  • iPhone (55)
  • 其他 (25)

现在,当我选择“Android”时,我使用“fq”=>“category:Android”进行新查询,我会得到:

类别

  • 安卓
  • iPhone (15)
  • 其他 (2)

但这意味着有 15 种产品,属于“Android”和“iPhone”类别。我想要这样的东西:(“Android”或“iPhone”)

类别

  • 安卓
  • iPhone (+5)
  • 其他 (+1)

这意味着我将通过选择“Android (25)”获得 25 个结果,通过选择“iPhone (+5)”获得另外 5 个结果,所以最终我将获得 30 个搜索结果..

有谁知道这是否可以通过 SOLR 的刻面实现?或者可能有多个查询并手动计算?

谢谢你的建议!

4

2 回答 2

3

根据您需要的所有排列,您可能希望查看查询方面,使您能够获取任意查询的计数。例如,您可以执行facet.query=category:("Android" OR "iPhone")并获取键入的计数结果category:("Android" OR "iPhone")。而且,您可以对任何数量的查询执行此操作。因此,在您的情况下,您可能会通过直接字段方面和查询方面的某种组合来获得最终解决方案。

编辑:重新阅读您的问题,您可能还想研究标记和排除部分 extra fq,具体取决于您如何允许用户“选择”选项。(文档中的示例与您的原始设置非常接近,尽管我不确定最终行为是否完全符合您的要求)。

于 2011-11-30T16:37:41.510 回答
3

尝试使用否定选择的新查询,例如"fq" => "-category:Android"- 然后您应该获得您正在寻找的方面计数。

于 2011-11-30T16:49:38.103 回答