2014-04-28 57 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 「