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

全文檢索搜尋的索引元件會負責全文檢索索引的初始擴展,以及修改過全文檢索索引資料表中的資料後,此索引的後續更新。

全文檢索索引處理程序

全文檢索擴展 (也就是搜耙) 起始時,全文檢索引擎會將大批的資料發送至記憶體中,並通知篩選背景程式主機。此主機會針對資料進行篩選並斷詞,並且將轉換的資料轉換成反向字詞清單。然後,全文檢索搜尋會從這些字詞清單中提取轉換的資料、處理資料以便移除停用字詞,並且將批次的字詞清單保存在一或多個反向索引中。

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

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

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

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

[!附註]

主要合併過程可能需要密集的磁碟 I/O,因為合併索引片段時必須讀寫大量的資料,但是不會阻止傳入的查詢。同時,主要合併大量資料可能會建立長時間執行的交易,並在檢查點期間延遲截斷交易記錄。在此情況下,交易記錄可能會在完整復原模式下明顯成長。最佳作法是,確認您的交易記錄包含足夠的空間供長時間執行的交易使用,然後在資料庫中識別使用完整復原模式的大型全文檢索索引。如需詳細資訊,請參閱<管理交易記錄檔的大小>。

全文檢索查詢處理程序

查詢處理器會將查詢的全文檢索部分傳遞至全文檢索引擎,以便進行處理。 全文檢索引擎會執行斷詞並選擇性地執行同義字展開、詞幹分析和停用字詞 (非搜尋字) 處理。然後,查詢的全文檢索部分會以 SQL 運算子的形式表示,主要表示成資料流資料表值函數 (STVF)。在查詢執行期間,這些 STVF 會存取反向索引來擷取正確的結果。接著,這些結果會在此時傳回用戶端,或在傳回用戶端之前進一步處理。