14

Solr スキーマに次の 2 つのフィールドがあります。

<field name="brand_id"     type="string" indexed="true" stored="true" />
<field name="category_id"  type="string" indexed="true" stored="true" />

ファセットを有効にしてリクエストを行うと (brand_id でファセット) http://example.com/solr/select?wt=json&facet=true&facet.mincount=1&facet.field=brand_id&q= * :*

ファセット出力はオブジェクト表記で返されます。

"facet_counts": {
    "facet_queries": { }
    "facet_fields": {
         "brand_id": [
            {"1350492":14},
            {"1350578":12},
            {"1350600":11},
            {"1350617":8}
        ]
    }
}

ただし、「category_id」をファセット フィールドとして使用して同じリクエストを繰り返すと、配列表記 http://example.com/solr/select?wt=json&facet=true&facet.mincount=1&facet.field=category_id&q= * :*が返されます。

"facet_counts":{
    "facet_queries":{},
    "facet_fields":{
        "category_id":[
            "230",20,
            "259",13,
            "154",12,
            "249",11
        ]
    }
}

オブジェクト表記のフォーマットを強制する方法はありますか? Solr 3.6 を使用しています

- アップデート -

XML 形式を使用すると、正しい結果が返されます。

<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
    <lst name="brand_id">
        <int name="269115">136</int>
        <int name="269394">110</int>
    </lst>


    <lst name="category_id">
        <int name="1348814">228</int>
        <int name="1350591">218</int>
    </lst>
4

3 に答える 3

10

Bill Dueber が述べたように、json.nl パラメータを使用して JSON 出力をフォーマットできます。このページを確認してください、https://wiki.apache.org/solr/SolJSON#JSON_specific_parameters

于 2013-05-11T10:07:51.043 に答える
0

少し前に似たようなことを経験しました。

タグ multiValued=false をフィールドの定義に追加してみてください。私はそれを私のために修正したことを覚えています。

ただし、インデックスを再作成する必要がある場合があります。

于 2013-06-06T10:23:09.737 に答える