私はsolr検索結果のファセットに取り組んでいます。ファセットを希望どおりに表示するのに問題があります。1 つのファセットで値を選択し、ファセット カウントが 0 の場合、値を取り除かずに他のファセットでカウントのみを更新できるようにしたいと考えています
。それらのカウント:
色:
[ ] 赤 (10)
[ ] 青 (10)
[ ] 緑 (10)
サイズ:
[ ] 小 (5)
[ ] 中 (10)
[ ] 大 (10)
赤を選択すると、ファセットが次のように更新されます。
色:
[x] 赤 (10)
[ ] 青 (10)
[ ] 緑 (10)
サイズ:
[ ] 小 (0)
[ ] 中 (5)
[ ] 大 (5)
色を選択してもカラーファセットのオプションが制限されないように動作していますが、取得する除外を微調整することで、サイズに合わせて適切なファセットを表示する方法を見つけることができません。
サイズ:
[ ] 中 (5)
[ ] 大 (5)
または:
サイズ:
[ ] 小 (5)
[ ] 中 (10)
[ ] 大 (10)
facet.limit=-1 を追加しようとしましたが、何もしないようです。探していたことができると思っていたので、おそらくバグでしょうか? 私はsolr 4.3.1を実行しています。
これが私のクエリです:
q=chair&rows=10&start=0&facet.limit=-1&defType=edismax&facet.field={!ex=colortag}color&facet.field={!ex=sizetag}size&facet=true&fq={!tag=colortag}color: red&fl=*,score
これはSolrで可能ですか?私はこれの例に出くわしたことがなく、解決策が機能しないキャッシングを使用してフロントエンドで処理することになるのではないかと心配しています。
編集
だから私は facet.mincount=0 を追加しましたが、私が望むものを与えてくれませんでした。問題は、mincount を 0 に設定すると、検索結果に含まれないすべてのファセットが取得されることです。だからここに私が欲しいものがあります:
色:
[x] 赤 (10)
[ ] 青 (10)
[ ] 緑 (10)
サイズ:
[ ] 小 (0)
[ ] 中 (5)
[ ] 大 (5)
しかし、私が実際に得ているのは:
色:
[x] 赤 (10)
[ ] 青 (10)
[ ] 緑 (10)
[ ] オレンジ (0)
[ ] 紫 (0)
[ ] ピンク (0)
サイズ:
[ ] S (0)
[ ] M (5)
[ ] L (5)
[ ] X-Large (0)
[ ] XX-Large (0)
そのため、クエリ用語に一致しない色とサイズを追加しました。正しく機能していることはわかっていますが、それは私が望んでいる方法ではありません。私が取ることができる別のアプローチはありますか?ファセットを選択せずに最初の結果を取得するために 1 回の呼び出しを行ってから、フィルター処理されたファセットを取得するために 2 回目の呼び出しを行い、正しい結果を比較して構築することができることを認識しています。二重電話はしたくないので、助けていただければ幸いです。