我使用solr 4.4.0和rsolr gem作为相应的API。
背景
我的数据库中有很多分类,如戒指,耳环,项链等
我的数据库中有很多收藏品,如矮胖,现代等。
每个分类都有许多子类别,名为type
输入: 我想写一个带两个输入的查询: 1.分类学 2.收藏
期望的输出: 我有一组预定义的规则,它们为我提供了所需弹性的分类,集合和类型。
考虑以下规则:
If Anklets (Chunky)
Then
Necklaces (Chunky) (Beaded)
Earrings (Chunky) (Danglers)
Pendants (Chunky) (With chain)
Bracelets (Chunky) (Beaded)
此处输入分类法为anklets
,输入集合为chunky
。而且我希望在条件内对应于每个语句的6个结果。所以,我的结果应该有6个串珠项链,这些项链都是厚实的。 6个摇摇欲坠的耳环,等等......
问题: 我可以指定q和fq并获得每个语句的结果。但是我必须发送与每个语句相对应的单独请求,总共发出4个请求。是否可以形成一个查询,以便可以在一个请求中完成?
由于
答案 0 :(得分:0)
这实际上可以使用solr。
提供的group
结果功能来完成
第一步是使用布尔运算符组合查询以生成fq:
fq => "(product_taxonomy_name:Necklaces AND product_collection_value:Chunky AND product_type_value:Beaded)
OR (product_taxonomy_name:Earrings AND product_collection_value:Chunky AND product_type_value:Danglers)
OR (...)
OR (...)"
在查询中传递以下附加参数:
group => true, group.field => product_taxonomy_name, group.limit => 6