我正在尝试改进我的网络论坛上的搜索功能。我有职位表,每个岗位有(其中包括少有趣的事情):如何一次使用跨多行的SQL Server全文搜索?
- 帖子ID,对个人职位的唯一ID。
- 主题ID,帖子所属帖子的ID。每个线程可以有任意数量的帖子。
- 文字,因为没有它,论坛会很无聊。
我想写一个高效的查询,将搜索的线程在论坛进行了一系列的话,它应该返回一个命中任何线程ID为其中有职位,包括所有的搜索词。例如,假设线程9的帖子1001中包含单词“cat”,并且还在单词“hat”中包含1027。我想要搜索猫的帽子返回一个线程9命中。
这似乎是一个简单的要求,但我不知道有效的方式来做到这一点。在上面的例子中,使用常规的FREETEXT和CONTAINS能力来处理N'cat AND hat'不会返回任何结果,因为这些单词存在于不同的帖子中,即使这些帖子在同一个线程中。 (据我所知,当使用CREATE FULLTEXT INDEX时,我必须将它作为主键PostID的索引,并且不能告诉它索引具有相同ThreadID的所有帖子。)
解决方案我现在有工作,但很糟糕:维护一个单独的表,其中包含每个线程的整个连接后的文本,并在该表中创建全文索引。我正在寻找一种解决方案,不需要我在论坛中保存每个线程的整个文本的副本。有任何想法吗?我错过了明显的东西吗?
您是如何解决这个问题的?您是如何解决单独表格的65535个字符的TEXT限制问题的? – mgutt 2015-04-11 21:44:40