小编Ada*_*iel的帖子

在关系数据库中高效实现分面搜索

我正在尝试使用多标签过滤实现分面搜索或标记.在分面导航中,仅显示非空类别,并且在括号中显示类别中也匹配已应用标准的项目数.

我可以有使用内部连接分配类的所有项目,并得到使用COUNT和GROUP BY在所有类别的项目数,但我不知道怎么会扩展到数百万的标签对象和数千个.特别是计数.

我知道有一些非关系解决方案,如Lucene + SOLR,但我发现一些基于闭源RDBMS的实现,据说是像FacetMap.comEndeca软件这样的企业实力,所以必须有一个在关系数据库中执行分面搜索的有效方法.

有没有人有分面搜索的经验,可以提供一些提示?

缓存每个类别集的计数?也许使用一些智能增量技术来更新计数器?

编辑:

可以在此处找到分面导航的示例:弗拉门戈.

目前我有标准的3表方案(项目,标签和items_tags,如下所述:http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html#toxi )加上一个表对于方面.每个标签都分配了一个方面.

sql database tagging database-design faceted-search

17
推荐指数
3
解决办法
7920
查看次数

标签 统计

database ×1

database-design ×1

faceted-search ×1

sql ×1

tagging ×1