我正在嘗試改進我的網絡論壇上的搜索功能。我有職位表,每個崗位有(其中包括少有趣的事情):如何一次使用跨多行的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