我有 2 种数据类型,“car_dealer”,它是“car”的父级。对汽车类型的文档进行索引,包括“品牌”和“型号”2 个字段。在这两个字段上,我使用枢轴分面。
站点访问者需要能够搜索汽车和汽车经销商,通过匹配汽车数据(子)可以找到汽车经销商(父)。为此,我需要加入,幸运的是 solr 4 支持这一点。要将 'cars' 与 'car_dealers' 连接起来,我在汽车类型的文档中添加了一个名为 'dealer' 的字段,它保存了汽车所属的经销商 ID,然后我将其与所有文档都具有的 'id' 字段连接起来.
我想出了以下查询(忽略不相关的字段)..
汽车搜索:
q={!dismax v=$values qf=$fields}&values=porsche&fields=title^10 body^10&facet=true&facet.pivot=brand,model
(方面工作正常)
汽车经销商搜索:
q={!join from=dealer to=id defType=dismax v=$values qf=$fields}&values=porsche&fields=title^10 body^10&facet=true&facet.pivot=brand,model
最后一个查询很好地显示了汽车经销商,但是由于 car_dealer 类型的文档不包含品牌或型号,因此这些方面不起作用。
如何在汽车经销商搜索中也返回方面?这样人们就可以按品牌和型号筛选经销商。
我尝试将 facet.pivot 上的反向连接作为本地参数,但没有任何运气:
facet.pivot={!join from=id to=dealer}brand,model
我不确定是否可以将本地参数添加到构面,我已经阅读了我能找到的所有文档,但没有提到这个特定场景。
任何朝着正确方向的推动都将不胜感激:)