Solr分组类别/子类别

时间:2013-02-22 00:52:48

标签: solr solr4

我仍然是Solr领域的新手。

我正在尝试创建一个按类别分组的查询,返回一个唯一的sub_categories列表。我的架构看起来类似于以下内容:

+==============================================+
| id  | category | sub_category | Type         |
+-----+----------+--------------+--------------+
| 1   | Apparel  | Pants        | Suede        |
| 2   | Apparel  | Pants        | Leather      |
| 3   | Apparel  | Pants        | Wind Pants   |
| 4   | Apparel  | Shirts       | Short-Sleeve |
| 5   | Apparel  | Shirts       | Long-Sleeve  |
| 6   | Sports   | Balls        | Soccer Ball  |
| 7   | Sports   | Balls        | Football     |
+-----+----------+--------------+--------------+

我有兴趣获得类似于以下的回报,但我不确定如何完成它。我几乎可以到达这里,但问题是我无法让sub_category列返回唯一值。 下面的示例说明了不同的sub_categories:

{
  "responseHeader": {
    "status": 0,
    "QTime:" 12,
  },
  "grouped": {
    "category": {
      "matches": 1,
      "groups": [
        {
          "groupValue": "Apparel",
          'docList": {
            "numFound": 2,
            'start': 0,
            'docs': [
              {"sub_category": "Pants"},
              {"sub_category": "Shirts"}
            ]
        },
        {
          "groupValue": "Sports",
          'docList": {
            "numFound": 2,
            'start': 0,
            'docs': [
              {"sub_category": "Balls"}
            ]
        },
      ]
    }
  }
}

1 个答案:

答案 0 :(得分:3)

假设您使用的是Solr 4.0+,我相信facet pivoting是一种更好的方法。

尝试:

http://localhost:8983/solr/select?q=*:*&facet.pivot=category,sub_category&facet=true&facet.field=category&rows=0

更新:嗯,但是这不会给你带来独特的数量: - ?如果可以的话,那会给你这样的东西:

+ Apparel [5]
|--- Pants [3]
|--- Shirts [2]
|
+ Sports [2]
|--- Balls [2]