本主題描述全文搜索的重大變更。 這些變更可能會中斷以舊版 SQL Server 為基礎的應用程式、腳本或功能。 升級時可能會遇到這些問題。 如需詳細資訊,請參閱使用 升級建議程式 準備升級。
SQL Server 2014 中 Full-Text 搜尋的重大變更
稍後會提供的資訊。
SQL Server 2012 中 Full-Text 搜尋的重大變更
sys.fulltext_languages 中名稱欄的排序順序已變更
目錄檢視sys.fulltext_languages (Transact-SQL) 中語言名稱數據行的定序已從資源資料庫的固定定序變更為 SQL Server 實例選取的預設定序。 當您聯結 sys.syslanguages (Transact-SQL) 檢視與sys.fulltext_languages時,這項變更可讓您比較名稱數據行中的值。 例如,您可以查詢預設全文檢索語言與預設資料庫語言不同的所有資料庫。
SQL Server 2008 中 Full-Text 搜尋的重大變更
下列重大變更適用於 SQL Server 2005 與 SQL Server 2008 和更新版本之間的 Full-Text 搜尋。
| 特徵 / 功能 | 情境 | SQL Server 2005 | SQL Server 2008 和更新版本 |
|---|---|---|---|
| CONTAINSTABLE 與使用者定義的類型(UDTs) | 全文檢索鍵是 SQL Server 使用者定義的型別,例如 MyType = char(1)。 |
傳回的索引鍵是指派給使用者定義型別的類型。 在這裡範例中,這會是 char(1) 。 |
傳回的索引鍵是用戶定義型別。 在此範例中,這會是 MyType。 |
| top_n_by_rank 參數 (CONTAINSTABLE 和 FREETEXTTABLETransact-SQL 語句) | top_n_by_rank 使用 0 做為 參數的查詢。 | 失敗並出現錯誤訊息,指出您必須使用大於零的值。 | 成功,傳回零個資料列。 |
| CONTAINSTABLE 和 ItemCount | 先從基表刪除數據列,再將變更推送至 MSSearch。 | CONTAINSTABLE 會傳回鬼影記錄。 ItemCount 未變更。 | CONTAINSTABLE 不會傳回任何幽靈記錄。 |
| ItemCount | 數據表包含空文檔或類型欄位。 | 除了已編製索引的檔,Null 或具有 Null 類型的檔也會在 ItemCount 值中計算。 | ItemCount 值只會計算已編製索引的文件。 |
| 目錄 ItemCount | 具有 NULL 擴充功能的 Blob 資料行。 | 它會計算在目錄的 ItemCount 中 | 它不會計入目錄的 ItemCount 中。 |
| 唯一鍵數量 | 從目錄查詢唯一鍵計數,例如,兩個資料表(table1 和 table2)分別有三個詞:word1、word2 和 word3。 |
UniqueKeyCount = 9。 下表摘要說明如何達到此值: table1 = 3 數據表 1 = 1 之全文檢索索引的 EOF table2 = 3 數據表2的全文索引的EOF = 1 全文檢索目錄 = 1 |
針對每個數據表, UniqueKeyCount 是相異關鍵詞 + 1 的數目(0xFF)。 這不會將>1個檔案中的相同單字視為新的唯一鍵。 對於目錄, UniqueKeyCount 是目錄下每個數據表的 UniqueKeyCount 總和。 來自不同數據表的相同單字會被視為唯一索引鍵。 在此情況下,唯一索引鍵的數量為8。 |
| 預先計算排名 伺服器層級選項 | FREETEXTTABLE 查詢的效能優化。 | 當選項設定為 1 時,以 top_n_by_rank 指定的 FREETEXTTABLE 查詢會使用儲存在全文檢索目錄中的預先計算排名數據。 | 不支援 。 |
| sp_fulltext_pendingchanges 更新關鍵資料列時 | 更新一個包含2列數據表的其中一列的全文檢索索引鍵欄,然後執行sp_fulltext_pendingchanges。 | 這兩個數據列都會出現。 | 只有一個數據列出現。 |
| 內嵌函式 | 具有全文檢索運算子的內嵌函式 | 傳回錯誤訊息。 | 傳回相關的數據列。 |
| sp_fulltext_database | 使用 sp_fulltext_database 啟用或停用全文搜索。 | 全文檢索查詢不會傳回任何結果。 如果資料庫停用全文檢索,則不允許全文檢索作業。 | 將結果傳回全文檢索查詢,並允許全文檢索作業,即使資料庫已停用全文檢索也一樣。 |
| 地區特定的停用字詞 | 查詢母語的區域性語言變體,例如比利時法語版本和加拿大法語版本。 | 特定地區變體的查詢將由其母語的元件(分詞工具、詞幹分析器和停用字詞)進行處理。 例如,法語(法國)組件可用來剖析法語(比利時)。 | 您必須為每個地區識別碼(LCID)明確地新增停用字詞。 例如,您必須為比利時、加拿大和法國指定 LCID。 |
| 同義詞詞幹處理過程 | 使用同義字和變化形式(詞幹)。 | 同義詞在展開後會自動進行詞幹分析。 | 如果您想在展開中包含字幹形式,您需明確加入字幹形式。 |
| 全文檢索目錄的路徑和檔案群組 | 使用全文索引目錄。 | 每個全文檢索目錄都有實體路徑,並屬於檔案群組。 它會被視為資料庫檔案。 | 全文檢索目錄是虛擬物件,而且不屬於任何檔案群組。 全文檢索目錄是參考全文檢索索引群組的邏輯概念。 注意:指定全文檢索目錄的 SQL Server 2005Transact-SQL DDL 語句正常運作。 |
| sys.fulltext_catalogs | 使用此目錄檢視的路徑、資料空間 ID 和檔案 ID。 | 這些數據行會傳回特定值。 | 這些數據行會傳回 NULL,因為全文檢索目錄已不再位於文件系統中。 |
| sys.sysfulltextcatalogs | 使用這個已不再支援的系統數據表的路径數據行。 | 傳回全文檢索目錄的檔案系統路徑。 | 傳回 NULL,因為全文檢索目錄已不再位於文件系統中。 |
|
sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor |
使用這些已取代預存程式的PATH資料行。 | 傳回全文檢索目錄的檔案系統路徑。 | 傳回 NULL,因為全文檢索目錄已不再位於文件系統中。 |
| sp_help_fulltext_catalog_components | 使用 sp_help_fulltext_catalog_components 來操作此預存程式。 | 傳回用於目前資料庫中所有全文檢索目錄的所有元件清單(篩選、斷詞工具和通訊協定處理程式)。 | 傳回空的數據列。 |
| DATABASEPROPERTYEX | 使用 IsFullTextEnabled 屬性。 | IsFullTextEnabled 設定會指出是否在指定的資料庫中啟用全文搜索。 | 此數據行的值沒有任何作用。 使用者資料庫一定會啟用全文檢索搜尋。 |