我正在使用产品目录中的一些动态属性,在一个字段下索引(类似于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
任何想法?