對全文檢索搜尋的重大變更

本主題描述全文檢索搜尋的重大變更。 這些變更可能會中斷以舊版 SQL Server 為根據的應用程式、指令碼或功能。 當您升級時可能會遇到這些問題。 如需詳細資訊,請參閱<使用 Upgrade Advisor 來準備升級>。

SQL Server 2012 全文檢索搜尋的重大變更

sys.fulltext_languages 中之名稱資料行的定序已變更

目錄檢視 sys.fulltext_languages (Transact-SQL) 中的語言名稱資料行定序,已從資源資料庫的固定定序,變更為針對 SQL Server 執行個體選取的預設定序。 當您聯結 sys.syslanguages (Transact-SQL) 檢視與 sys.fulltext_languages 時,此變更可能會比較名稱資料行中的值。 例如,您可以查詢預設全文檢索語言與預設資料庫語言不同的所有資料庫。

SQL Server 2008 全文檢索搜尋的重大變更

下列重大變更適用於 SQL Server 2005 到 SQL Server 2008 及更新版本的全文檢索搜尋。

功能

狀況

SQL Server 2005

SQL Server 2008 及更新版本

CONTAINSTABLE 搭配使用者定義型別 (UDT)

全文檢索索引鍵是 SQL Server 使用者定義型別,例如 MyType = char(1)。

傳回的索引鍵具有指派給使用者定義型別的型別。

在此範例中,這就是 char(1)

傳回的索引鍵具有使用者定義型別。 在此範例中,這就是 MyType

CONTAINSTABLE 和 FREETEXTTABLE Transact-SQL 陳述式的 top_n_by_rank 參數

使用 0 當做參數的 top_n_by_rank 查詢。

發生失敗並傳回錯誤訊息,該訊息指出您必須使用大於零的值。

成功,傳回零個資料列。

CONTAINSTABLE 和 ItemCount

在基底資料表發送變更到 MSSearch 之前,從基底資料表中刪除資料列。

CONTAINSTABLE 會傳回準刪除記錄。 ItemCount 並不會變更。

CONTAINSTABLE 不會傳回任何準刪除記錄。

ItemCount

資料表包含 Null 文件或類型資料行。

除了索引文件以外,Null 的文件或是具有 Null 類型的文件也會算入 ItemCount 值內。

只有索引文件才會算入 ItemCount 值內。

目錄 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。

precompute rank 伺服器層級選項

FREETEXTTABLE 查詢的效能最佳化。

當這個選項設定為 1 時,使用 top_n_by_rank 指定的 FREETEXTTABLE 查詢會使用存放在全文檢索目錄中的預先計算的等級資料。

不支援。

sp_fulltext_pendingchanges (更新索引鍵資料行時)

在 2 個資料列之資料表的其中一個資料列上更新全文檢索索引鍵資料行,並執行 sp_fulltext_pendingchanges。

兩個資料列都會出現。

只出現一個資料列。

內嵌函數

具有全文檢索運算子的內嵌函數

傳回錯誤訊息。

傳回相關的資料列。

sp_fulltext_database

使用 sp_fulltext_database 來啟用或停用全文檢索搜尋。

全文檢索查詢不會傳回任何結果。 如果此資料庫停用全文檢索,則不允許全文檢索作業。

傳回結果給全文檢索查詢,並允許全文檢索作業 (即使此資料庫停用全文檢索)。

地區設定特性的停用字詞

母語之地區設定特性變化中的查詢,例如比利時法文和加拿大法文。

地區設定特性變化中的查詢是由其母語的元件 (斷詞工具、字幹分析器和停用字詞) 所處理。 例如,法文 (法國) 元件可用於剖析法文 (比利時)。

您必須明確針對每一個地區設定識別碼 (LCID) 加入停用字詞。 例如,您需要為比利時、加拿大和法國指定 LCID。

同義字字幹處理

使用同義字和字形變化 (字幹)。

同義字會在擴充之後自動進行字幹處理。

如果您想要擴充的字幹形式,您需要明確加入字幹處理的形式。

全文檢索目錄路徑和檔案群組

處理全文檢索目錄。

每一個全文檢索目錄都有實體路徑,而且會屬於某個檔案群組。 它會被視為資料庫檔案。

全文檢索目錄是虛擬物件,而且不屬於任何檔案群組。 全文檢索目錄是參考一組全文檢索索引的邏輯概念。

[!附註]

指定全文檢索目錄正常運作的 SQL Server 2005 Transact-SQL DDL 陳述式。

sys.fulltext_catalogs

使用此目錄檢視的 path、data_space_id 和 file_id。

這些資料行會傳回特定的值。

這些資料行會傳回 NULL,因為此全文檢索目錄不再位於檔案系統中。

sys.sysfulltextcatalogs

使用這個已被取代之系統資料表的 path 資料行。

傳回全文檢索目錄的檔案系統路徑。

傳回 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 設定指出給定的資料庫中是否啟用全文檢索搜尋。

此資料行的值沒有任何作用。 全文檢索搜尋一定會啟用使用者資料庫。

請參閱

概念

全文檢索搜尋的行為變更

全文檢索搜尋 (SQL Server)