共用方式為


SQL Server 2008 全文檢索搜尋的突破性變更

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

突破性變更

下列突破性變更適用於 SQL Server 2008 中的全文檢索搜尋。

功能

狀況

SQL Server 2005

SQL Server 2008

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

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

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

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

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

CONTAINSTABLE 和 FREETEXTTABLETransact-SQL 陳述式的 top_n_by_rank 參數

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

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

成功,傳回零個資料列。

CONTAINSTABLE 和 ItemCount

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

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

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

FREETEXT 或 FREETEXTTABLE

搜尋精確的片語。

如果將搜尋字串 (freetext_string) 括在雙引號內,就不會執行詞幹分析和同義字比對,而且字串只會傳回完全相符項目,就像是片語搜尋一樣。例如,在 FREETEXT 述詞中指定 "fast ships" 只會傳回包含 "fast ships" 的資料列。將不會傳回 "ship your package fast" 片語。

FREETEXT 和 FREETEXTTABLE 不再允許片語搜尋,這兩者會執行詞幹分析和同義字比對,不論是單引號還是雙引號括住搜尋字串。例如,搜尋 "fast ships" 會傳回 "fast ships" 和 "ship your package fast" 這兩者。

若要搜尋片語,請使用 CONTAINSCONTAINSTABLE

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

傳回目前資料庫中所有全文檢索目錄所用的所有元件 (篩選、斷詞工具和通訊協定處理常式) 的清單。

傳回空的資料列。

DATABASEPROPERTYDATABASEPROPERTYEX

使用 IsFullTextEnabled 屬性。

IsFullTextEnabled 設定指出給定的資料庫中是否啟用全文檢索搜尋。

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

變更記錄

更新的內容

已將有關 FREETEXT 功能的資料列新增至資料表。