私は、1つのフィールド(thisに似ています)の下にインデックスされた、製品カタログ内のいくつかの動的属性を扱っています。単純な例は、次のようになります。Solrはダイナミックなフィールドを持つ多面ファセットですか?
{id: 1, DYN_ATT:Color||Green, DYN_ATT:Size||Small}
{id: 2, DYN_ATT:Color||Red, DYN_ATT:Size||Small}
{id: 3, DYN_ATT:Color||Green, DYN_ATT:Size||Small}
{id: 4, DYN_ATT:Color||Red, DYN_ATT:Size||Large}
ただし、これらがすべて異なるファセットであるかのようにマルチセレクトを有効にすることは不可能です。例えば
、ユーザーがUIでGreen
色ファセットを選択言う:
[ ]Red
[ ]Green
----------
[ ]Small
[ ]Large
結果のファセットは、ユーザーがRed
OR Green
を選択できるようにする(Color
可能なすべての値を表示する必要があります。しかしフィルタリングする必要があります。 Green
が別の(論理)椎間で選択されているに基づいてSize
面。
[ ]Red
[x]Green
----------
[ ]Small
これを実行する方法はありますか? 私は何の答えも見つけていないし、別のアプローチが必要かもしれないと思われる。残念ながら、データ内の属性の種類は大きく異なります。どちらもこれらの作業の
:
fq={!tag=DYNTAG}DYN_ATT:"Color||Green"&facet.field={!ex=DYNTAG}DYN_ATT
これはSize
のためにあまりにも多くの結果が得られます。 [ ]Large
のファセットは使用できないはずですが、返されます。ユーザがそれを選択した場合、2つのフィルタは分離しており、結果は得られません。ユーザーが色にを複数選択することができませんので
fq={!tag=DYNTAG}DYN_ATT:"Color||Green"&facet.field=DYN_ATT
これは、面からRed
を除く、少なすぎる結果が得られます。
[x]Red
[x]Green
任意のアイデア?