我有一個SQL Server 2005數據庫,其中有一個包含4000萬條記錄的表。每條記錄都包含一個存儲逗號分隔的關鍵字列表的列。每個關鍵字都是字母和數字的組合。關鍵字長達7個字符,平均每條記錄有15個關鍵字。關鍵字在行之間不唯一。在40M文本記錄上快速SQL Server搜索
我想搜索全部或部分關鍵字。
我創建了顯示328,245,708唯一鍵數的全文索引。搜索效率罰款(在測試機上圍繞爲100ms)的4個或更多字符的查詢,但對於具有3點或更少的字符(最多三分在測試機器上)查詢太慢。
我一直在試圖用類似的結果排序'[query]*'
兩個CONTAINSTABLE
和CONTAINS
查詢。
我認爲短查詢的性能比較慢,因爲短詞在不同記錄中更頻繁地重複。
排序結果並不重要,我一直試圖返回TOP X
結果排序從CONTAINSTABLE
排名。這不能提供所需的性能。
如何使短搜索的搜索速度更快?
我會重建表結構,使用關鍵字的新表,並使用一個外鍵 –
我與t-clausen.dk指回主鍵原始表。您可以爲每個不同的關鍵字創建一個具有ID的表格,然後使用rowID/KeywordID對創建一個表格,並在現有表格和對錶格之間創建一對多關係。 – Beth
相比於關鍵字列上的全文索引,性能會有所提升嗎?同樣,我會在搜索時遇到重複結果的可能性問題。 – mrt