Apache Solr中的facet字段(不是分层构面)的层次结构?

时间:2012-09-14 04:48:12

标签: solr lucene faceted-search facet

我正在尝试跨多种文档类型设置搜索,每种类型都有不同的字段集。因此,搜索应始终只从最常用的构面字段(例如产品类别)开始,对所有文档类型都是通用的。

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字段依赖?

非常感谢!

修改:我将标题更改为“构面字段的依赖关系”。

2 个答案:

答案 0 :(得分:2)

IMO您不需要创建任何依赖 您可以为此条目创建单个字段。

当您执行初始查询时,您将面对产品类型 然后,当您对特定产品类型进行过滤时,您只会根据过滤器从结果中获得分面。

例如 产品类型相机将有品牌佳能,尼康等......有一些容量选项 产品类型TV&视频将有品牌歌曲,三星等......还有其他一些属性

因此,当您在相机上过滤(fq=product_type:Camera)时,您将仅限制此过滤器中带有容量选项的产品类型相机和品牌的结果。
过滤应该照顾依赖性。

答案 1 :(得分:0)

我认为您可以通过确保索引每个文档中的相应信息来实现,请查看this wiki page on hierarchical facetting