在 Azure AI 搜尋服務中監視索引子狀態和結果
您可以在 Azure 入口網站中或以程式設計方式透過 REST 呼叫或 Azure SDK 監視索引子處理。 除了索引子本身的狀態之外,您還可以檢閱開始和結束時間,以及來自特定執行的詳細錯誤和警告。
使用 Azure 入口網站監視
您可以在搜尋服務 [概觀] 頁面中看到所有索引子的目前狀態。 入口網站頁面會每隔幾分鐘重新整理一次,因此您不會立即看到新索引子執行的辨識項。 選取頁面頂端的 [重新整理],以立即擷取最新的檢視。
狀態 | 描述 |
---|---|
進行中 | 表示作用中的執行。 Azure 入口網站 會報告部分資訊。 編製索引進行時,您可以觀看回應中的成功的文件值會成長。 處理大量資料的索引子可能需要很長的時間來執行。 例如,處理數百萬個來源文件的索引子可以執行 24 小時,然後幾乎立即重新開始以從其離開的位置接著執行。 因此,大量索引器的狀態可能一律會在 Azure 入口網站 中說進行中。 即使索引子執行中,也會提供有關進行中的進度和先前執行的詳細資料。 |
「成功」 | 表示執行成功。 如果錯誤數目小於索引子的 [失敗項目數上限] 設定,即使個別文件發生錯誤,索引子執行仍可以成功。 |
失敗 | 錯誤數目超過 [失敗項目數上限] 且索引編製已停止。 |
重設 | 索引子的內部變更追蹤狀態已重設。 索引子會完整執行、重新整理所有文件,而不只是具有較新時間戳記的文件。 |
您可以選取清單中的索引子,以查看索引子目前和最近執行的詳細資料。
索引子摘要圖表會顯示最近執行中所處理文件數目的圖表。
執行詳細資料清單會顯示最近執行的最多 50 個結果。 在清單中選取執行結果,以查看該執行的特定資料。 這包括其開始和結束時間,以及發生的任何錯誤和警告。
如果在執行期間發生文件特定問題,會將其列在 [錯誤] 和 [警告] 欄位中。
某些索引子類型的警告很常見,而且不一定會指出問題。 例如,當影像或 PDF 檔案不包含任何要處理的文字時,使用 Azure AI 服務的索引子可能會報告警告。
如需調查索引子錯誤和警告的詳細資訊,請參閱索引子疑難排解指導。
使用 Azure 監視計量監視
Azure AI 搜尋服務是 Azure 監視器中的受監視資源,這表示您可以使用計量瀏覽器來查看索引子處理的文件和技能叫用數目的相關基本計量。 這些計量可用來監視索引子進度和設定警示。
計量檢視可以依一組預先定義的維度篩選或分割。 若要了解與計量已處理的文件計數和技能執行叫用計數相關的維度,請參閱計量維度。
下列螢幕擷取畫面會顯示服務內索引子在一小時內處理的文件數目,依索引子名稱分割。
您也可以設定圖形,以查看相同小時間隔內的技能叫用數目。
使用取得索引子狀態監視 (REST API)
您可以使用取得索引子狀態命令來擷取索引子的狀態和執行歷程記錄:
GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2024-07-01
api-key: [Search service admin key]
回應包含整體索引子的狀態、最後 (或進行中) 的索引子叫用,以及最新的索引子叫用歷程記錄。
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2018-11-26T03:37:18.853Z",
"endTime":"2018-11-26T03:37:19.012Z",
"errors":[],
"itemsProcessed":11,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":[ {
"status":"success",
"errorMessage":null,
"startTime":"2018-11-26T03:37:18.853Z",
"endTime":"2018-11-26T03:37:19.012Z",
"errors":[],
"itemsProcessed":11,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
}]
}
執行歷程記錄最多包含 50 個最近的執行,其會以反向時間順序排序 (最新優先)。
請注意,有兩個不同的狀態值。 最上層狀態用於索引子本身。 執行中索引子狀態表示索引子已正確設定且可供執行,而不是目前正在執行。
每個索引子執行也有自己的狀態,指出特定執行是在進行中 (執行中),還是已完成,出現 success、transientFailure 或 persistentFailure 狀態。
當索引子重設以重新整理其變更追蹤狀態時,會新增具有 Reset 狀態的個別執行歷程記錄項目。
如需狀態碼和索引子監視資料的詳細資訊,請參閱取得索引子狀態。
使用 .NET 監視
下列 C# 範例會寫入索引子狀態的相關資訊,以及其對主控台最近 (或進行中) 執行的結果。
static void CheckIndexerStatus(SearchIndexerClient indexerClient, SearchIndexer indexer)
{
try
{
string indexerName = "hotels-sql-idxr";
SearchIndexerStatus execInfo = indexerClient.GetIndexerStatus(indexerName);
Console.WriteLine("Indexer has run {0} times.", execInfo.ExecutionHistory.Count);
Console.WriteLine("Indexer Status: " + execInfo.Status.ToString());
IndexerExecutionResult result = execInfo.LastResult;
Console.WriteLine("Latest run");
Console.WriteLine("Run Status: {0}", result.Status.ToString());
Console.WriteLine("Total Documents: {0}, Failed: {1}", result.ItemCount, result.FailedItemCount);
TimeSpan elapsed = result.EndTime.Value - result.StartTime.Value;
Console.WriteLine("StartTime: {0:T}, EndTime: {1:T}, Elapsed: {2:t}", result.StartTime.Value, result.EndTime.Value, elapsed);
string errorMsg = (result.ErrorMessage == null) ? "none" : result.ErrorMessage;
Console.WriteLine("ErrorMessage: {0}", errorMsg);
Console.WriteLine(" Document Errors: {0}, Warnings: {1}\n", result.Errors.Count, result.Warnings.Count);
}
catch (Exception e)
{
// Handle exception
}
}
主控台中的輸出看起來會像這樣:
Indexer has run 18 times.
Indexer Status: Running
Latest run
Run Status: Success
Total Documents: 7, Failed: 0
StartTime: 11:29:31 PM, EndTime: 11:29:31 PM, Elapsed: 00:00:00.2560000
ErrorMessage: none
Document Errors: 0, Warnings: 0
請注意,有兩個不同的狀態值。 最上層狀態是索引子本身的狀態。 執行中索引子狀態表示索引子已正確設定且可供執行,而不是目前正在執行。
索引子的每個執行也會有自己的狀態,指出該特定執行正在進行 (執行中),或已完成,出現 Success 或 TransientError 狀態。
當索引子重設以重新整理其變更追蹤狀態時,會新增具有 Reset 狀態的個別歷程記錄項目。
下一步
如需狀態碼和索引子監視資訊的詳細資訊,請參閱下列 API 參考: