2

私はまだ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"}
            ]
        },
      ]
    }
  }
}
4

1 に答える 1

3

Solr 4.0+ を使用していると仮定すると、ファセットのピボットがこれを行うためのより良い方法だと思います。

試す:

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]
于 2013-02-22T02:29:56.283 に答える