我正在尝试使用多标签过滤实现分面搜索或标记。在分面导航中,仅显示非空类别,并且类别中也匹配已应用标准的项目数显示在括号中。
我可以使用 INNER JOIN 获取所有已分配类别的项目,并使用 COUNT 和 GROUP BY 获取所有类别中的项目数,但是我不确定它将如何扩展到数百万个对象和数千个标签。尤其是计数。
我知道有一些像Lucene + SOLR这样的非关系型解决方案,但我还发现了一些基于 RDBMS 的闭源实现,据说是像FacetMap.com或Endeca软件这样的企业实力,所以必须有一个在关系数据库中执行分面搜索的有效方法。
有没有人有分面搜索的经验并可以提供一些提示?
缓存每个类别集的计数?也许使用一些可以更新计数器的智能增量技术?
编辑:
可以在此处找到分面导航的示例:弗拉门戈舞。
目前我有标准的 3 表方案(项目、标签和 items_tags,如下所述:http ://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html#toxi )加上一个表对于方面。每个标签都分配了一个方面。