共用方式為


升級全文檢索搜尋

在安裝期間,會將全文檢索搜尋升級至 SQL Server 2014,以及從舊版SQL Server附加、還原或複製資料庫檔案和全文檢索目錄時,

本主題討論升級全文檢索搜尋的下列各方面:

升級伺服器執行個體

就地升級而言,SQL Server 2014 的實例會與舊版SQL Server並存設定,並移轉資料。 如果舊版 SQL Server 已安裝全文檢索搜尋,系統會自動安裝新版全文檢索搜尋。 並存安裝的意思是指下列各個元件可存在於 SQL Server 的執行個體層級。

斷詞工具、字幹分析器和篩選
各個執行個體現在會使用自己的斷詞工具、字幹分析器和篩選集,而不再使用這些元件的作業系統版本。 您還能在個別執行個體層級中,輕易地註冊和設定這些元件。 如需詳細資訊,請參閱 設定及管理搜尋的斷詞工具與字幹分析器設定及管理搜尋的篩選

篩選背景程式主機
全文檢索篩選背景程式主機處理序可安全無虞地載入並驅動用於索引和查詢的擴充外部元件,例如斷詞工具、字幹分析器和篩選,而無損全文檢索引擎的完整性。 伺服器執行個體會針對所有多執行緒篩選使用多執行緒處理序,而針對所有單一執行緒篩選使用單一執行緒處理序。

注意

SQL Server 2008 引進了 FDHOST Launcher 服務的服務帳戶, (MSSQLFDLauncher) 。 此服務會將服務帳戶資訊傳播至 SQL Server 特定執行個體的篩選精靈主機處理序。 如需設定服務帳戶的相關資訊,請參閱 設定全文檢索篩選背景程式啟動器的服務帳戶

在 SQL Server 2005 中,每個全文檢索索引都位於屬於檔案群組的全文檢索目錄中、具有實體路徑,並視為資料庫檔案。 在 SQL Server 2008 和更新版本中,全文檢索目錄是包含全文檢索索引群組的邏輯或虛擬物件。 因此,新的全文檢索目錄不會被視為具有實體路徑的資料庫檔案。 不過,在升級含有資料檔案的任何全文檢索目錄期間,系統會在相同的磁碟上建立新的檔案群組。 這會在升級之後保留舊磁碟 I/O 行為。 如果根路徑存在,則任何來自該目錄的全文檢索索引都會放置於新的檔案群組中。 如果舊的全文檢索目錄路徑無效,升級作業就會將全文檢索索引保留在與基底資料表相同的檔案群組中,或是保留在分割區資料表的主要檔案群組中。

注意

SQL Server指定全文檢索目錄的 2005 Transact-SQL DDL 語句會繼續正常運作。

全文檢索升級選項

將伺服器實例升級至 SQL Server 2014 時,使用者介面可讓您選擇下列其中一個全文檢索升級選項。

匯入
匯入全文檢索目錄。 一般而言,匯入的速度明顯比重建的速度更快。 例如,只有使用一個 CPU 時,匯入的執行速度大約比重建的速度快 10 倍。 不過,匯入的全文檢索目錄不會使用與 SQL Server 最新版本一併安裝的新斷詞工具。 為確保查詢結果的一致性,必須重建全文檢索目錄。

注意

重建可以在多執行緒模式中執行,而且如果有 10 個以上的 CPU 可用,當您允許重建使用所有 CPU 時,重建的執行速度可能會比匯入的速度更快。

如果無法使用全文檢索目錄,將會重建關聯的全文檢索索引。 此選項僅適用于 SQL Server 2005 個資料庫。

如需有關匯入全文檢索索引之影響的詳細資訊,請參閱本主題後面的「選擇全文檢索升級選項的考量」。

重建
全文檢索目錄會使用新的增強斷詞工具重建。 重建索引可能需要一些時間,而且在升級之後可能需要相當多的 CPU 和記憶體。

重設
重設全文檢索目錄。 從 SQL Server 2005 升級時,會移除全文檢索目錄檔案,但會保留全文檢索目錄和全文檢索索引的中繼資料。 在升級之後,所有的全文檢索索引都會停用變更追蹤,而且不會自動啟動搜耙。 當您在升級完成之後手動發出完整母體擴展之前,此目錄將會維持空白狀態。

選擇全文檢索升級選項的考量

當您為升級作業選擇升級選項時,請考慮下列事項:

  • 您需要查詢結果中的一致性嗎?

    SQL Server 2014 會安裝新的斷詞工具,以供Full-Text和語意搜尋使用。 編製索引及查詢時皆可使用斷詞工具。 如不重建全文索引目錄,可能會造成搜尋結果不一致。 當您發出全文索引查詢的要求,尋找舊版 SQL Server 斷詞工具與目前斷詞工具斷詞方式相異的片語,可能會無法擷取含有該片語的文件或資料列。 這是索引片語所使用的分解邏輯與查詢所用者不相同所致。 此方案會使用新的斷詞工具重新擴展 (重建) 全文索引目錄,讓索引與查詢時的行為一致。 您可以選擇 [重建] 選項以完成這個作業,也可以在選擇 [匯入] 選項之後手動重建。

  • 是否有任何全文檢索索引建立在整數全文檢索索引鍵資料行上?

    重建會執行內部最佳化,以便在某些情況中改善已升級之全文檢索索引的查詢效能。 具體而言,如果您擁有包含全文檢索索引的全文檢索目錄,其中基底資料表的全文檢索索引鍵資料行是整數資料類型,則重建會在升級之後達到理想的全文檢索查詢效能。 在此情況中,我們強烈建議您使用 [重建] 選項。

    注意

    若為 SQL Server 2014 中的全文檢索索引,建議您使用作為全文檢索索引鍵的資料行做為整數資料類型。 如需詳細資訊,請參閱 改善全文檢索索引的效能

  • 將伺服器執行個體保持在線上狀態的優先權為何?

    在升級期間匯入或重建會耗用大量 CPU 資源,因而延遲將其餘伺服器執行個體升級並保持在線上狀態的時間。 如果盡可能將伺服器執行個體保持在線上狀態很重要,而且您願意在升級之後執行手動母體擴展,則適合使用 [重設]

確保匯入 SQL Server 2005 全文檢索索引之後的查詢結果一致性

如果在將 SQL Server 2005 資料庫升級為 SQL Server 2014 時匯入全文檢索目錄,則查詢與全文檢索索引內容之間可能會發生不相符的情況,因為舊斷詞工具與新斷詞工具的行為不同。 在此情況中,若要確保查詢與全文檢索索引內容之間完全相符,請選擇下列其中一個選項:

如需斷詞工具的詳細資訊,請參閱 設定及管理搜尋的斷詞工具與字幹分析器

將非搜尋字檔案升級為停用字詞表

SQL Server 2005 個非搜尋字已由 SQL Server 2008 和更新版本中的停用字詞取代。 當資料庫從 SQL Server 2005 升級至 SQL Server 2014 時,不再使用非搜尋字檔案。 不過,舊的非搜尋字檔案會儲存在 FTDATA\ FTNoiseThesaurusBak 資料夾中,稍後您可以在更新或建置對應的SQL Server 2014 停用字詞表時使用這些檔案。

從 SQL Server 2005 升級之後:

  • 如果您從未在安裝 SQL Server 2005 中新增、修改或刪除任何非雜訊字檔案,系統停用字詞表應符合您的需求。

  • 如果您的非搜尋字檔案在 2005 SQL Server中修改,這些修改會在升級期間遺失。 若要重新建立這些更新,您必須在對應的 SQL Server 2008 停用字詞表中手動重新建立這些修改。 如需詳細資訊,請參閱 ALTER FULLTEXT STOPLIST (Transact-SQL)

  • 例如,如果您不想將任何停用字詞套用至全文檢索索引 (,例如,如果您在 SQL Server 2005 安裝) 中刪除或清除了非搜尋字檔案,則必須關閉每個升級全文檢索索引的停用字詞表。 執行下列 Transact-SQL 陳述式 (將 database 改成升級後資料庫的名稱,並將 table 改成資料表的名稱):

    Use database;   
    ALTER FULLTEXT INDEX ON table  
       SET STOPLIST OFF;  
    GO  
    

    STOPLIST OFF 子句會移除停用字詞篩選,而且它將會觸發資料表的母體擴展,但不會篩選任何視為非搜尋字的字詞。

備份與匯入的全文檢索目錄

對於升級期間重建或重設的全文檢索目錄 (以及新的全文檢索目錄) 而言,此全文檢索目錄是邏輯概念,而且不會位於檔案群組中。 因此,若要在 SQL Server 2014 中備份全文檢索目錄,您必須識別包含目錄全文檢索索引的每個檔案群組,並逐一備份每個目錄。 如需詳細資訊,請參閱 備份並還原全文檢索目錄與索引

對於從 SQL Server 2005 匯入的全文檢索目錄,全文檢索目錄仍是其本身檔案群組中的資料庫檔案。 全文檢索目錄的 SQL Server 2005 備份程式仍適用,但 MSFTESQL 服務不存在於 SQL Server 2014 中。 如需 SQL Server 2005 程式的相關資訊,請參閱《線上叢書》SQL Server中的備份和還原Full-Text目錄

將資料庫升級為 SQL Server 2014 時移轉全文檢索索引

使用附加、還原或複製資料庫精靈,可以將舊版SQL Server的資料庫檔案和全文檢索目錄升級至現有的 SQL Server 2014 伺服器實例。 SQL Server 2005 全文檢索索引,如果有的話,則會匯入、重設或重建。 upgrade_option 伺服器屬性會控制此伺服器執行個體在這些資料庫升級期間所使用的全文檢索升級選項。

附加、還原或複製任何SQL Server 2005 資料庫至 SQL Server 2014 之後,資料庫就會立即可供使用,然後自動升級。 根據進行索引的資料數量而定,匯入可能需要數個小時,而重建可能需要十倍以上的時間。 此外,請注意,當升級選項設定為 [匯入] 時,如果全文檢索目錄無法使用,系統就會重建相關聯的全文檢索索引。

變更伺服器執行個體的全文檢索升級行為

將 SQL Server 2005 全文檢索目錄還原至 SQL Server 2014 的考量

將全文檢索資料從 SQL Server 2005 資料庫升級到 SQL Server 2014 的其中一種方法是將完整資料庫備份還原至 2014 年SQL Server。

匯入SQL Server 2005 全文檢索目錄時,您可以備份和還原資料庫和目錄檔案。 行為與 SQL Server 2005 中的相同:

  • 完整資料庫備份將會包含全文檢索目錄。 若要參考全文檢索目錄,請使用其SQL Server 2005 檔案名,sysft_+catalog-name

  • 如果全文檢索目錄處於離線狀態,備份將會失敗。

如需備份和還原SQL Server 2005 全文檢索目錄的詳細資訊,請參閱 SQL Server 2005 線上叢書中的備份和還原Full-Text目錄檔案備份和還原和Full-Text目錄

在 SQL Server 2014 上還原資料庫時,將會為全文檢索目錄建立新的資料庫檔案。 這個檔案的預設名稱為 ftrow_catalog-name.ndf。 例如,如果您目錄名稱cat1 ,則 SQL Server 2014 資料庫檔案的預設名稱會是 ftrow_cat1.ndf 。 但是,如果預設名稱已經用於目標目錄中,新的資料庫檔案就會命名為 ftrow_catalog-name{GUID}.ndf,其中 GUID 是新檔案的全域唯一識別碼。

匯入目錄之後,會更新 sys.database_filessys.master_files以移除目錄項目,而且 sys.fulltext_catalogs 中的 path 資料行會設成 NULL。

備份資料庫

還原資料庫備份

範例

下列範例會使用RESTORE語句中的 MOVE 子句來還原名為 ftdb1 的 SQL Server 2005 資料庫。 SQL Server 2005 資料庫、記錄檔和目錄檔案會移至 SQL Server 2014 伺服器實例上的新位置,如下所示:

  • 資料庫檔案 ftdb1.mdf會移至 C:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf

  • 記錄檔 ftdb1_log.ldf會移至記錄磁碟機上的記錄目錄: log_drive:\log_directory\ftdb1_log.ldf

  • 對應至 sysft_cat90 目錄的目錄檔案會移至 C:\temp。 匯入全文檢索索引之後,它們會自動放置於資料庫檔案 C:\ftrow_sysft_cat90.ndf 中,而且系統會刪除 C:\temp。

RESTORE DATABASE [ftdb1] FROM  DISK = N'C:\temp\ftdb1.bak' WITH  FILE = 1,  
   MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',  
    MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',  
    MOVE N'sysft_cat90' TO N'C:\temp';  

將 SQL Server 2005 資料庫附加至 SQL Server 2014

在 SQL Server 2008 和更新版本中,全文檢索目錄是參考全文檢索索引群組的邏輯概念。 全文檢索目錄是不屬於任何檔案群組的虛擬物件。 不過,當您將包含全文檢索目錄檔案的 SQL Server 2005 資料庫附加至 SQL Server 2014 伺服器實例時,目錄檔案會與其先前的位置一起附加,與其他資料庫檔案相同,與 SQL Server 2005 相同。

SQL Server 2014 上每個附加全文檢索目錄的狀態與從 SQL Server 2005 卸離資料庫時相同。 如果卸離作業暫停了任何全文檢索索引母體擴展,則會在 2014 年SQL Server繼續母體擴展,全文檢索索引會變成可供全文檢索搜尋使用。

如果 SQL Server 2014 找不到全文檢索目錄檔案,或在附加作業期間移動全文檢索檔案而不指定新位置,則行為取決於選取的全文檢索升級選項。 如果全文檢索升級選項是 [匯入] 或 [重建],系統就會重建附加的全文檢索目錄。 如果全文檢索升級選項是 [重設],系統就會重設附加的全文檢索目錄。

如需卸除及附加資料庫的詳細資訊,請參閱資料庫卸除和附加 (SQL Server)CREATE DATABASE (SQL Server Transact-SQL)sp_attach_dbsp_detach_db (Transact-SQL)

另請參閱

全文檢索搜尋使用者入門
設定及管理搜尋的斷詞工具與字幹分析器
設定及管理搜尋的篩選