首页 文章

Solr复杂的刻面

提问于
浏览
4

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

类别

  • Android(25)

  • iPhone(55)

  • 其他(25)

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

类别

  • Android

  • iPhone(15)

  • 其他(2)

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

类别

  • Android

  • iPhone(5)

  • 其他(1)

意思是通过选择“Android(25)”获得25个结果,选择“iPhone(5)”获得另外5个,最后我将获得30个搜索结果 .

有没有人知道SOLR的分面是否可行?或者可能有多个查询并手动计算?

谢谢你的建议!

2 回答

  • 3

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

  • 3

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

    Edit :重新阅读你的问题,你可能还想查看tagging and excluding部分额外的 fq ,具体取决于你如何允许你的用户"select into"选择 . (文档中的示例与您的原始设置非常接近,但我不确定最终行为是否符合您的要求) .

相关问题