2014-04-28 61 views
0

我有一个SOLR的特定查询,我似乎无法找到解决方案。我有一个索引充满产品和SKU的。一个产品有多个sku,每个sku有一个产品。我想通过父产品对我的SKU进行搜索,然后仅返回父产品的详细信息(但不包括项目的详细信息)。但是,我希望这些方面代表原始项目列表。 SOLR今天有可能吗?这个版本有哪些版本?Solr卷起查询

回答

0

我认为这是可能的,我的建议是设计你的核心,以便该文件只代表一个SKU或一个项目。所以,您的唯一ID将成为SKU ID。然后,您需要一个不唯一的productId,并且可以为具有相同父级产品的SKU具有相同的值。

您还可以对所有文档中的产品详细信息取消规范化。所以,当你返回物品的细节时,你也可以获得物品的细节。

查询中的技巧是在Solr中使用分组或字段合并功能。 看到更多细节在这里:https://wiki.apache.org/solr/FieldCollapsing

但作为一个开始,我建议在查询中设置这些值:

  1. 设置group=true(这将使分组)
  2. 设置group.field=productId(到组,或折叠项目,按ProductID)
  3. 设置group.facet=false(包括在小计数的所有项目的详细信息)

因此,这将使您能够搜索所有项目,返回按ProductId分组的结果,并且构面编号将应用于所有项目。 这不是一项新功能,如果您有任何Solr 3.3或4.x,您应该可以使用分组。

0

你可以使用:

“排序”: “地图(special_price,1,99999,special_price,价格)desc” 的 “排序”:“地图(special_price,1,99999,special_price,价格),ASC “