【发布时间】:2010-09-19 02:04:27
【问题描述】:
我很想知道 Stack Overflow 的标记和搜索是如何构建的,因为它似乎工作得很好。
如果我想做以下所有事情,什么是好的数据库/搜索模型:
- 在各种实体上存储标签,(标准化程度如何?即 Entity、Tag 和 Entity_Tag 表?)
- 搜索带有特定标签的项目
- 构建适用于特定搜索结果集的所有标签的标签云
- 如何在搜索结果中显示每个项目的标签列表?
也许以规范化的形式存储标签是有意义的,但也可以作为空格分隔的字符串用于#2、#4,也许还有#3。想法?
我听说 Stack Overflow 使用 Lucene 进行搜索。真的吗?我听过一些讨论 SQL 优化的播客,但没有关于 Lucene 的内容。如果他们确实使用 Lucene,我想知道搜索结果中有多少来自 Lucene,以及“向下钻取”标签云是否来自 Lucene。
【问题讨论】:
标签: database-design tags full-text-search tag-cloud