適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
全文索引失敗疑難排解
在填充或維護全文索引時,全文索引器可能無法索引一個或多個列,原因如下表所述。 這些資料列層級的錯誤不會妨礙填入作業完成。 索引器會跳過這些列,這表示你無法查詢這些列中包含的內容。
下列情況可能會發生編製索引失敗:
索引器找不到或無法載入過濾器或斷字元件。 若資料列包含未註冊於 SQL Server 實例的語言文件格式或內容,則可能發生此故障。 此故障也可能發生在註冊的字斷器或過濾器元件未被簽署,或在元件載入時簽章驗證失敗。 Azure SQL 和 Azure SQL 受控執行個體 不支援第三方斷字器。
元件,例如字斷開器或過濾器,失敗時會回傳錯誤給索引器。 如果被索引的文件損壞,過濾器無法從文件中擷取文字,就可能發生這種失敗。 當元件因全文檢索篩選器常駐程式主機 (
fdhost.exe) 的記憶體限制,而無法處理超過特定大小的單一資料列內容時,也可能發生此失敗。
爬網紀錄會包含每個資料列層級失敗原因的詳細資料。 在完整或增量資料載入結束時會彙總錯誤計數。
其他故障可能會影響索引程序,並導致填入作業無法完成:
全文索引超過了全文目錄所能包含的列數限制。
你可以修改、刪除或重建被索引表格上的叢集索引或全文鍵索引。
硬體故障或磁碟損毀導致全文檢索目錄損毀。
包含全文索引資料表的檔案群組會離線或改為唯讀。
在任何重要的全文索引族群操作結束時,或發現族群未完成時,檢查爬取日誌。
無符號元件
依預設,全文檢索索引子需要有它可載入以進行簽署的篩選和斷詞工具。 如果未簽署,安裝自訂元件時可能會發生,你必須設定全文索引器忽略簽名驗證。
重要
略過簽章驗證會讓 SQL Server 執行個體變得較不安全。 你應該簽署你所實施的任何組件,或確保你購買的任何組件都有簽署。 關於簽署元件的資訊,請參見 sp_fulltext_service。
交易日誌還原後,全文索引狀態不一致
在還原資料庫的交易日誌時,你可能會看到警告,表示全文索引狀態不一致。 此警告出現是因為資料庫備份後,資料表上的全文索引被修改。 若要讓全文索引達到一致狀態,您必須在資料表上執行完整填入 (爬網) 的操作。 如需詳細資訊,請參閱 建立全文索引。