【发布时间】:2008-12-29 17:38:53
【问题描述】:
我开始涉足 MSSQL2005 的全文搜索。这是一个新的开发中数据库,所以我可以随意使用它。
假设我有一个“表单”表,它与另外两个表“答案”和“评论”具有一对多的关系。我希望用户能够输入一个搜索词,并通过全文搜索将所有这三个表挂起来。最好的方法是什么?看来我可以创建一个indexed view 来加快速度。
如果我确实使用索引视图(无论如何这是最好的方法吗?),我该如何处理一对多关系?假设我真正想要弄清楚的是“表单”表的 ID,该表将包含在子答案/评论表中找到的任何搜索结果,因此我可以显示包含已定位条目的整个表单。视图上的内部连接会导致返回多个“主”表单行——这听起来对性能不太好。如何将所有子答案/评论行连接到视图的一个“列”中?所以不是......
Form 1, Answer A, Comment A
Form 1, Answer B, Comment A
Form 1, Answer A, Comment B
Form 1, Answer B, Comment B
...应该是...
Form 1, Answer A Answer B, Comment A Comment B
记住,我只关心那个主“表单”行的 ID。
这对我来说似乎是合乎逻辑的,但我还不确定全文搜索的最佳实践,所以只是好奇我是否正确地接近它。
更新:看起来索引视图非常严格;没有左连接,没有子查询,所以我可能会沿着由触发器填充的汇总表的路径走下去,如果它不会太笨重的话。
【问题讨论】:
标签: sql sql-server full-text-search