我正在尝试改进我的网络论坛上的搜索功能.我有一个帖子表,每个帖子都有(除了其他不那么有趣的东西):
我想编写一个有效的查询来搜索论坛中的线程以获取一系列单词,并且它应该返回任何ThreadID的匹配,其中包含所有搜索单词的帖子.例如,假设线程9的帖子1001中包含单词"cat",并且还在其中发布了带有"hat"字样的1027.我想要搜索cat hat以返回9号线的命中.
这似乎是一个简单的要求,但我不知道有效的方法.使用N'cat AND hat'的常规FREETEXT和CONTAINS功能将不会在上面的示例中返回任何匹配,因为单词存在于不同的帖子中,即使这些帖子在同一个帖子中.(据我所知,当使用CREATE FULLTEXT INDEX时,我必须在主键PostID上给它我的索引,并且不能告诉它将具有相同ThreadID的所有帖子编入索引.)
我目前使用的解决方案有效,但很糟糕:维护一个单独的表,其中包含每个线程的整个连接后文本,并在THAT上创建一个全文索引.我正在寻找一种解决方案,不要求我在论坛中保留每个帖子的整个文本的副本.有任何想法吗?我错过了一些明显的东西吗