對全文檢索搜尋的重大變更
本主題描述全文檢索搜尋的重大變更。 這些變更可能會中斷以舊版 SQL Server 為基礎的應用程式、指令碼或功能。 當您升級時可能會遇到這些問題。 如需詳細資訊,請參閱< Use Upgrade Advisor to Prepare for Upgrades>。
SQL Server 2014 中Full-Text搜尋的重大變更
將於日後提供資訊。
SQL Server 2012 中Full-Text搜尋的重大變更
sys.fulltext_languages 中之名稱資料行的定序已變更
sys.fulltext_languages (Transact-SQL) 目錄檢視中語言名稱資料行的定序已從 Resource 資料庫的固定定序變更為為SQL Server實例選取的預設定序。 當您聯結sys.syslanguages (Transact-SQL) 檢視與sys.fulltext_languages時,這項變更可讓您比較名稱資料行中的值。 例如,您可以查詢預設全文檢索語言與預設資料庫語言不同的所有資料庫。
SQL Server 2008 全文檢索搜尋的重大變更
下列重大變更適用于 SQL Server 2005 與 SQL Server 2008 和更新版本之間的Full-Text搜尋。
功能 | 狀況 | SQL Server 2005 | SQL Server 2008 及更新版本 |
---|---|---|---|
包含使用者定義型別的CONTAINSTABLE (UDT) | 全文檢索索引鍵是SQL Server使用者定義型別,例如 MyType = char(1) 。 |
傳回的索引鍵具有指派給使用者定義型別的型別。 在此範例中,這會是 char (1) 。 |
傳回的索引鍵具有使用者定義型別。 在此範例中,這會是 MyType。 |
CONTAINSTABLE 和FREETEXTTABLETransact-SQL 語句的top_n_by_rank參數 () | top_n_by_rank 使用 0 作為 參數的查詢。 | 發生失敗並傳回錯誤訊息,該訊息指出您必須使用大於零的值。 | 成功,傳回零個資料列。 |
CONTAINSTABLE 和 ItemCount | 在基底資料表發送變更到 MSSearch 之前,從基底資料表中刪除資料列。 | CONTAINSTABLE 會傳回準刪除記錄。 ItemCount 未變更。 | CONTAINSTABLE 不會傳回任何準刪除記錄。 |
ItemCount | 資料表包含 Null 文件或類型資料行。 | 除了索引檔之外,Null 或具有 Null 類型的檔也會計入 ItemCount 值中。 | 只有在 ItemCount 值中才會計算索引檔。 |
Catalog ItemCount | 具有 NULL 延伸模組的 Blob 資料行。 | 它會計算在目錄的 ItemCount 中 | 它不會計入目錄的 ItemCount 中。 |
UniqueKeyCount | 從目錄中查詢唯一索引鍵計數,例如兩個資料表 (table1 和 table2),每個資料表都有三個字:word1、word2 和 word3。 | UniqueKeyCount = 9。 下表摘要列出如何達到這個值: table1 = 3 table1 全文檢索索引的 EOF = 1 table2 = 3 table2 全文檢索索引的 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 | 使用此目錄檢視的路徑、data_space_id 和 file_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設定會指出是否在指定的資料庫中啟用全文檢索搜尋。 | 此資料行的值沒有任何作用。 使用者資料庫一定會啟用全文檢索搜尋。 |