0

私は Solr 4.10 を使用しており、要件は複数のファセットを持つことです。各ファセット フィルターは、選択したファセットのみに影響し、他のファセットには影響しません。

たとえば、BRAND と TYPE の 2 つのファセットがあるとします。ユーザーがブランドとして Nikon を選択すると、TYPE ファセットに影響しますが、BRAND ファセットには影響しません。TYPE についても同様の動作です。

タグとex関数で実装してみたところ、クエリは以下のようになり、

/select?q=query&wt=json&start=0&rows=10&facet=true&fq={!tag=brand}brand:(Canon,Nikon)&fq={!tag=type}type:(TV)&facet.mincount=1&facet.field={!ex=brand}brand&facet.field={!ex=type}type&fl=id,brand,type

これはほとんどの場合うまく機能しますが、結果がゼロの場合、Solr は何らかの形でファセットの 1 つに対してファセットを返します。上記のクエリでは、応答にドキュメントが含まれていなくても、型に何らかの値が含まれています。

以下は、取得した応答です。

{
"response": {
    "numFound": 0,
    "start": 0,
    "docs": []
},
"facet_counts": {
    "facet_queries": {},
    "facet_fields": {
        "type": [
            "TV",
            4
        ],
        "brand": []
    },
    "facet_dates": {},
    "facet_ranges": {},
    "facet_intervals": {}
}

}

4

0 に答える 0