全文檢索索引和查詢處理程序

修改過全文檢索索引資料表中的資料後,全文檢索搜尋的索引元件會負責全文檢索索引的初始化擴展,以及此索引的後續更新。Microsoft SQL Server 2005 中已改善全文檢索收集機制,以使全文檢索索引的處理程序更有效率,進而大幅提升效能。

全文檢索索引處理程序

全文檢索擴展 (也就是編目) 初始化時,Database Engine 會將大批的資料推入記憶體中,並通知「Microsoft SQL Server 全文檢索引 (MSFTESQL)」服務開始編製索引。MSFTESQL 服務會從資料表的一或多個資料行,對字元和格式化二進位資料編製索引。使用通訊協定處理常式元件時,全文檢索引擎會將要進一步處理的資料從記憶體中取出,以產生全文檢索索引。

varbinary(max)image 資料行中儲存的資料編製索引時,執行 IFilter 介面的篩選會依據為該資料所指定的檔案格式 (例如 Microsoft Word 格式) 擷取文字。在某些情況下,篩選元件必須將 varbinary(max)image 資料寫至服務帳戶 Temp 目錄,而不是推入記憶體中。

作為處理程序的一部份,收集的文字資料在經由文字分隔的處理之後,會分隔成 Token 或關鍵字。用於 Token 化的語言是在資料行層級指定,也可由篩選元件在 varbinary(max)imagexml 資料中識別。

您可以在贅字和 Token 儲存至全文檢索索引或索引片段前,進行額外的處理以移除贅字並將 Token 正規化。

完成母體擴展後會觸發最後的合併程序,將索引片段合併成一個主要的全文檢索索引。如此可提升查詢的效能,因為只需要查詢一個主索引而不需查詢數個索引片段,而且可使用較佳的計分系統來排定關聯順序。

ms142591.note(zh-tw,SQL.90).gif附註:
主要合併過程可能需要密集的磁碟 I/O,因為合併索引片段時必須讀寫大量的資料,但是不會阻止傳入的查詢。

全文檢索查詢處理程序

在 SQL Server 處理序中,從用戶端送來的全文檢索查詢會進入 SQL Server Query Processor (QP)。QP 會將這項查詢傳送給全文檢索查詢元件,這樣會建立 OLE DB 命令樹狀結構,並將它傳送給 SQL Server (MSFTESQL) 服務的 Microsoft 全文檢索引擎。在 MSFTESQL 處理序中,全文檢索引擎查詢處理器會使用同義字和贅字檔案以及斷詞工具和詞幹分析器,來處理該項查詢。處理這項查詢之後,MSFTESQL 服務會將結果集傳回給 SQL Server 處理序。這個結果集可用於進一步的處理,或傳回給用戶端。

請參閱

概念

全文檢索搜尋架構

其他資源

全文檢索搜尋概念

說明及資訊

取得 SQL Server 2005 協助