我有一个SOLR的特定查询,我似乎无法找到解决方案。我有一个完整的产品索引和sku's。产品有多个sku,每个sku有1个产品。我希望仅针对我的SKU进行搜索,按父产品进行分组,只返回父产品的详细信息(但不返回项目的详细信息)。但是,我希望构面代表原始列表的项目。今天SOLR可以实现吗?这是什么版本?
答案 0 :(得分:0)
我认为这是可能的,我的建议是设计你的核心,使文件只代表一个SKU或一个项目。因此,您的唯一ID将是SKU ID。那么您需要一个不唯一的productId,并且对于具有相同父产品的SKU可能具有相同的值。
您还可以在所有文档中取消规范化产品详细信息。因此,当您返回该项目的详细信息时,您还可以获得该项目的详细信息。
查询的技巧是在Solr中使用分组或字段折叠功能。 在此处查看更多详细信息:https://wiki.apache.org/solr/FieldCollapsing
但作为开始,我建议在查询中设置这些值:
group=true
(这将启用分组)group.field=productId
(按productId分组或折叠项目)group.facet=false
(包括构面计数中所有项目的详细信息)因此,这将使您能够搜索所有项目,返回按ProductId分组的结果,并且构面编号将应用于所有项目。 这不是一个新功能,如果您有任何Solr 3.3或4.x,您应该能够使用分组。
答案 1 :(得分:0)
您可以使用:
"排序":"地图(special_price,1,99999,special_price,price)desc" "排序":"地图(special_price,1,99999,special_price,price)asc"