我正在使用產品目錄中的一些動態屬性,在一個字段下索引(類似於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
所得方面應該表現出所有可能的值Color
(允許用戶選擇Red
OR Green
但應該過濾基於Green
的Size
面在另一個(邏輯)方面進行選擇。
[ ]Red
[x]Green
----------
[ ]Small
有沒有辦法做到這一點? 我還沒有找到任何答案,並懷疑可能需要採取不同的方法。 不幸的是,數據中屬性的類型差異很大。
無論這些工作:
fq={!tag=DYNTAG}DYN_ATT:"Color||Green"&facet.field={!ex=DYNTAG}DYN_ATT
這會產生太多結果Size
。 [ ]Large
的方面應該不可用,但會被退回。如果用戶選擇它,則兩個過濾器將不相交併且不會產生結果。
fq={!tag=DYNTAG}DYN_ATT:"Color||Green"&facet.field=DYN_ATT
這將產生的結果太少,不包括Red
從面,這樣用戶就不能多選的顏色:
[x]Red
[x]Green
任何想法?