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

标签 solr lucene faceted-search facet

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

PRODUCT CATEGORY  
- Camera (42)  
- TV & Video (96)  
- MP3 Player (11)  
- Video Game (63)

选择“相机”后,我需要启用该文档类型独有的一整套新方面字段(例如品牌、容量),如下所示:

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 fields的依赖关系”更改为“dependency of facet fields”。

最佳答案

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

当您进行初始查询时,您将关注产品类型。
然后,当您过滤特定产品类型时,您只能根据过滤器从结果中获取方面。

例如 产品类型 相机品牌有佳能、尼康等...以及一些容量选项 产品类型电视和视频将有品牌宋、三星等......还有一些其他属性

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

关于solr - Apache Solr 中构面字段的层次结构(不是层次结构构面)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12418291/

相关文章:

java - 频繁调用 Solr 查询期间 Solr 错误 -> "Cannot assign requested address (connect failed)"

lucene - 如何使用休眠 lucene 搜索具有多对一关系的实体

c# - 帮助搜索引擎架构 .NET C#

php - 事件日期的 Solr Facet

java - Solr Faceting - 忽略构面计数中没有值的字段

solr - Solrj pojo Java 类型如何映射到 Solr 类型?

solr - 如何忽略 SOLR 查询中的某些字段

json - 将 solr 响应(solrdocumentlist)转换为 json(或 xml)

java - 使用 Infinispan 查询 API 时出现 NoSuchMethodError

Node.js 和分面搜索