我正在尝试跨多种文档类型设置搜索,每种类型都有不同的字段集 . 因此,搜索应始终只从最常见的构面字段(例如,产品类别)开始,对所有文档类型都是通用的 .
PRODUCT CATEGORY
- Camera (42)
- TV & Video (96)
- MP3 Player (11)
- Video Game (63)
选择“Camera”后,我需要启用一整套新的facet字段,这些字段专用于该文档类型(例如Brand,Capacity),如下所示:
PRODUCT CATEGORY
> Camera
BRAND
- Canon (42)
- Nikon (96)
- Sony (11)
- Samsung (63)
CAPACITY
- 1Gb (42)
- 2Gb (96)
- 3Gb (11)
- 4Gb (63)
我知道这可以通过以编程方式管理 facet.field
查询参数来完成,但有没有更好的方法来系统地构建它?是否有任何功能或提示允许Solr及其字段结构中的这个facet字段依赖?
非常感谢!
Edit: 我从"dependency of facet fields"更改了 Headers .
2 回答
IMO您不需要创建任何依赖项 .
您可以为此条目创建单个字段 .
当您执行初始查询时,您将面对“产品类型” .
然后,当您对特定产品类型进行过滤时,您只会根据过滤器从结果中获得分面 .
对于例如产品类型相机将有品牌佳能,尼康等...具有一些容量选项产品类型电视和视频将有品牌歌曲,三星等...具有一些其他属性
因此,当您在相机上过滤(
fq=product_type:Camera
)时,您将仅限制此过滤器中具有容量选项的产品类型相机和品牌的结果 .过滤应该照顾依赖性 .
我认为你可以通过确保索引每个文档中适当的信息来做到这一点,看看this wiki page on hierarchical facetting