註
Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。
本文提供您在 Azure AI 搜尋中索引及 AI 豐富過程中可能遇到的常見錯誤與警告的資訊與解決方案。
當錯誤數超過 maxFailedItems 時,索引就會停止。 要讓索引器跳過失敗文件,請設定 maxFailedItemsandmaxFailedItemsPerBatch。
註
每份失敗的文件及其文件鍵值(若有)會在索引器執行狀態中顯示錯誤。 如果你設定索引器容忍失敗,之後可以用 Documents - Index 上傳文件。
警告不會停止索引,但它們會顯示可能導致意外結果的狀況。 你是否採取行動取決於數據和你的情境。
具體索引器錯誤在哪裡可以找到?
要驗證索引器狀態並識別錯誤:
請前往 Azure 入口網站的搜尋服務。
在左側展開 搜尋管理>索引器 並選擇索引器。
在 執行歷史中,選擇狀態。 所有狀態,包括成功狀態,都包含執行細節。
如果有錯誤,請將滑鼠移到錯誤訊息上。 螢幕右側會出現一個視窗,顯示錯誤的詳細資訊。
瞬態誤差
由於各種原因,例如暫時性的網路通訊中斷、長時間執行程序的逾時,或特定文件細節,索引器執行時常見出現暫時錯誤或警告。 然而,這些錯誤是暫時性的,應在後續索引器執行時解決。
為了有效管理這些錯誤,我們建議 將索引器設定一個排程,例如每五分鐘執行一次,下一次執行在完成第一次執行後五分鐘開始,並遵守服務 的最大執行時間限制 。 定期運行有助於修正短暫錯誤或警告。
如果錯誤在多次索引執行中持續存在,通常不是暫時性問題。 在這種情況下,請參考下方清單尋找可能的解決方案。
錯誤性質
| 財產 | 描述 | 範例 |
|---|---|---|
| 鍵 | 受錯誤或警告影響的文件識別碼。 | Azure 儲存體 範例,其中預設 ID 是元資料儲存路徑: https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf |
| 名稱 | 導致錯誤或警告的操作。 這是由以下結構產生的: [category].[subcategory].[resourceType].[resourceName] |
DocumentExtraction.azureblob.myBlobContainerName
Enrichment.WebApiSkill.mySkillName
Projection.SearchIndex.OutputFieldMapping.myOutputFieldName
Projection.SearchIndex.MergeOrUpload.myIndexName
Projection.KnowledgeStore.Table.myTableName
|
| 訊息 | 錯誤或警告的高階描述。 | Could not execute skill because the Web Api request failed. |
| 詳情 | 具體資訊可能有助於診斷問題,例如執行自訂技能失敗時的 WebApi 回應。 | link-cryptonyms-list - Error processing the request record : System.ArgumentNullException: Value cannot be null. Parameter name: source at System.Linq.Enumerable.All[TSource](IEnumerable 1 source, Func 2 predicate) at Microsoft.CognitiveSearch.WebApiSkills.JfkWebApiSkills. ...rest of stack trace... |
| 文件連結 | 附有相關文件連結,提供詳細除錯與解決問題資訊。 此連結通常會指向本頁以下某個章節。 | https://go.microsoft.com/fwlink/?linkid=2106475 |
Error: Could not read document
索引器無法從資料來源讀取該文件。 這可能因以下原因而發生:
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 不同文件間欄位類型不一致 |
Type of value has a mismatch with column type. Couldn't store '{47.6,-122.1}' in authors column. Expected type is JArray.
Error converting data type nvarchar to float.
Conversion failed when converting the nvarchar value '12 months' to data type int.
Arithmetic overflow error converting expression to data type int.
|
確保不同文件中每個欄位的類型相同。 例如,如果第一個文件 'startTime' 欄位是 DateTime,而第二個文件是字串,就會觸發這個錯誤。 |
| 資料來源底層服務的錯誤 | 來自 Azure Cosmos 資料庫: {"Errors":["Request rate is large"]} |
檢查你的儲存實體,確保它處於健康狀態。 你可能需要調整縮放或分區。 |
| 短暫性問題 | A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host |
偶爾會遇到意想不到的連線問題。 之後再試著用索引器重新執行該文件。 |
Error: Could not extract content or metadata from your document
使用 Blob 資料來源的索引器無法從文件中擷取內容或元資料(例如 PDF 檔案)。 這可能因以下原因而發生:
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| Blob 已經超過尺寸限制 | Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. |
BLOB 索引錯誤 |
| Blob 有不支援的內容類型 | Document has unsupported content type 'image/png' |
BLOB 索引錯誤 |
| Blob 是加密的 | Document could not be processed - it may be encrypted or password protected. |
你可以通過 blob 設定 跳過 blob。 |
| 短暫性問題 |
Error processing blob: The request was aborted: The request was canceled.
Document timed out during processing.
|
偶爾會遇到意想不到的連線問題。 之後再試著用索引器重新執行該文件。 |
Error: Could not parse document
索引器從資料來源讀取文件,但在將文件內容轉換成指定的欄位映射結構時出現問題。 這可能因以下原因而發生:
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 缺少文件鍵 | Document key cannot be missing or empty |
確保所有文件都有有效的文件鍵。 文件鍵的定義是透過將「鍵」屬性設為 索引定義的一部分來決定。 當標記為「鍵」的屬性在特定文件中找不到時,索引器會發出此錯誤。 |
| 文件鍵無效 | Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). |
確保所有文件都有有效的文件鍵。 詳細請參考 Indexing Blob 儲存體 。 如果你用的是 blob 索引器,且你的文件鍵是 metadata_storage_path 欄位,請確保索引器的定義使用 base64Encode 映射函式,並且 parameters 等於 null,而不是使用純文字的路徑。 |
| 文件鍵無效 | Document key cannot be longer than 1024 characters |
修改文件鍵以符合驗證要求。 |
| 無法將欄位映射套用至某個欄位 | Could not apply mapping function 'functionName' to field 'fieldName'. Array cannot be null. Parameter name: bytes |
請再次檢查索引器上定義的 欄位映射 ,並與失敗文件指定欄位的資料進行比較。 可能需要修改欄位映射或文件資料。 |
| 無法讀取場值 | Could not read the value of column 'fieldName' at index 'fieldIndex'. A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) |
這些錯誤通常是因為與資料來源底層服務的意外連線問題所致。 之後再試著用索引器重新執行該文件。 |
Error: Could not map output field 'xyz' to search index due to deserialization problem while applying mapping function 'abc'
輸出映射失敗可能是因為輸出資料格式與你使用的映射函式不符。 例如,對二進位資料套用 Base64Encode 映射函數會產生此錯誤。 要解決此問題,可以重新執行索引器而不指定映射函數,或確保映射函式與輸出欄位資料型態相容。 詳情請參見 輸出場映射 。
Error: Could not execute skill
索引程式無法在技能組中執行一項技能。
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 短暫連接問題 | 發生了短暫錯誤。 之後再試。 | 偶爾會遇到意想不到的連線問題。 之後再試著用索引器重新執行該文件。 |
| 潛在產品錯誤 | 發生了意外錯誤。 | 這表示故障類別不明,可能代表產品存在錯誤。 提交 客服單 尋求幫助。 |
| 技能執行時發生錯誤 | (來自融合技能)一個或多個偏移值無效且無法解析。 文末插入了項目 | 請使用錯誤訊息中的資訊來修正問題。 這種失敗需要採取行動來解決。 |
Error: Could not execute skill because the Web API request failed
技能執行失敗是因為呼叫網頁 API 失敗。 通常,這類失敗發生在使用自訂技能時,這時你需要除錯自訂程式碼來解決問題。 如果失敗是因為內建技能,請參考錯誤訊息以協助修復問題。
偵錯此問題時,請務必注意此技能的任何技能輸入警告。 你的 Web API 端點可能失敗,是因為索引器傳入了意外輸入。
Error: Could not execute skill because Web API skill response is invalid
技能執行失敗,因為呼叫網頁 API 時回傳了無效回應。 通常,這類失敗發生在使用自訂技能時,這時你需要除錯自訂程式碼來解決問題。 如果失敗是因為內建技能,請提出 支援單 以獲得協助。
Error: Type of value has a mismatch with column type. Couldn't store in 'xyz' column. Expected type is 'abc'
如果你的資料來源欄位資料型別與你想映射的索引欄位不同,可能會遇到這個錯誤。 檢查你的資料來源欄位資料型別,並確保它們正確 對應到你的索引型別。
Error: Skill did not execute within the time limit
你可能會遇到兩種錯誤訊息,每種情況都應該以不同的方式處理。 根據導致錯誤的技能,請依照以下指示操作。
內建 Foundry Tools 技能
許多內建的認知技能,如語言偵測、實體辨識或 OCR,皆由 Foundry Tools API 端點支持。 有時這些端點會發生暫時性問題,導致請求超時。對於這類暫時性問題,除了等待並再次嘗試之外,別無他法。 作為緩解措施,可以考慮將索引器設置為按排程運行。 排定的索引會從上次停止的位置繼續。 假設暫時性問題已解決,索引與認知技能處理應能在下一次預定運行中繼續進行。
如果你在同一份內建認知技能文件中持續看到這個錯誤,請提出 支援單 以獲得協助,因為這並非預期中的。
自訂技能
如果您遇到自訂技能的逾時錯誤,可以嘗試幾件事。 首先,檢視你的自訂技能,確保它沒有陷入無限循環,且能穩定回傳結果。 一旦確認結果返回後,檢查執行時間。 如果你沒有在自訂技能定義中明確設定 timeout 數值,那麼預設 timeout 是 30 秒。 如果 30 秒不夠讓你的技能執行,你可以在自訂技能定義中指定更高的 timeout 數值。 這裡有一個自訂技能定義的範例,超時時間設為 90 秒:
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"uri": "<your custom skill uri>",
"batchSize": 1,
"timeout": "PT90S",
"context": "/document",
"inputs": [
{
"name": "input",
"source": "/document/content"
}
],
"outputs": [
{
"name": "output",
"targetName": "output"
}
]
}
你可以設定 timeout 參數的最大值是 230 秒。 如果你的自訂技能無法在 230 秒內穩定執行,你可以考慮減少自訂技能的執行量 batchSize ,讓它在一次執行中處理的文件數量更少。 如果你已經設定 batchSize 為 1,你需要重寫技能,讓它能在 230 秒內執行,或者拆分成多個自訂技能,讓單一自訂技能的執行時間最多為 230 秒。 請參考 自訂技能文件 以獲得更多資訊。
Error: Could not 'MergeOrUpload' | 'Delete' document to the search index
文件被讀取並處理,但索引器無法將其加入搜尋索引。 這可能因以下原因而發生:
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 欄位包含一個過長的詞彙 | 你文件中的某個詞彙大於 32 KB 的限制 | 你可以避免這個限制,方法是確保欄位沒有設定為可篩選、面向式或可排序。 |
| 文件太大無法索引 | 文件大小超過 最大 API 請求大小 | 如何索引大型資料集 |
| 文件集合中包含過多物件 | 文件中的集合超出 所有複雜集合的最大元素限制。 The document with key '1000052' has '4303' objects in collections (JSON arrays). At most '3000' objects are allowed to be in collections across the entire document. Remove objects from collections and try indexing the document again. |
我們建議將文件中複雜典藏的大小縮小至低於限制,並避免高儲存空間使用率。 |
| 連接目標索引(重試後仍持續存在)遇到困難,因為服務正承受其他負載,例如查詢或索引。 | 無法建立連線以更新索引。 搜救服務正承受著沉重的負擔。 | 擴大你的搜尋服務 |
| 搜尋服務正在進行服務更新修補,或正在進行拓撲重構。 | 無法建立連線以更新索引。 搜尋服務目前中斷/搜尋服務正在進行轉換。 | 根據 SLA 文件中的規範,配置至少三個副本以達到 99.9% 的可用性百分比。 |
| 底層運算/網路資源故障(罕見) | 無法建立連線以更新索引。 發生了未知故障。 | 設定索引器依 照排程執行 ,從失敗狀態中擷取資料。 |
| 針對目標索引的索引請求因網路問題在超時期限內未獲得確認。 | 無法及時建立與搜尋索引的連結。 | 設定索引器依 照排程執行 ,從失敗狀態中擷取資料。 此外,如果錯誤狀況持續,請嘗試降低索引 器的批次大小 。 |
Error: Could not index document because some of the document's data was not valid
該文件由索引器讀取與處理,但由於索引欄位配置與索引器擷取及處理的資料不符,無法將其加入搜尋索引。 這可能因以下原因而發生:
| 原因 | 細節/範例 |
|---|---|
| 索引器擷取的一個或多個欄位的資料型態與對應目標索引欄位的資料模型不相容。 | The data field '_data_' in the document with key '888' has an invalid value 'of type 'Edm.String''. The expected type was 'Collection(Edm.String)'. |
| 無法從字串值中提取任何 JSON 實體。 |
Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON object.
Error:'After parsing a value an unexpected character was encountered: ''. Path '_path_', line 1, position 3162.'
|
| 無法從字串值中提取一組 JSON 實體。 |
Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON array.
Error:'After parsing a value an unexpected character was encountered: ''. Path '[0]', line 1, position 27.'
|
| 原始文件中發現了一種未知類型。 | Unknown type '_unknown_' cannot be indexed |
| 原始文件中使用了不相容的地理點符號。 | WKT POINT string literals are not supported. Use GeoJson point literals instead |
在所有這些情況下,請參考 「支援的資料型別 」和「 索引器資料型別映射 」,以確保你正確建立索引結構並設定了適當的 索引器欄位映射。 錯誤訊息包含有助於追蹤不匹配來源的細節。
Error: Integrated change tracking policy cannot be used because table has a composite primary key
這適用於 SQL 資料表,通常發生在金鑰被定義為複合金鑰,或資料表定義了唯一的叢集索引(例如 SQL 索引,而非 Azure 搜尋索引)時。 主要原因是金鑰屬性被修改為 唯一叢集索引中的複合主鍵。 在這種情況下,請確保你的 SQL 表格沒有唯一的叢集索引,或是將金鑰欄位對應到保證不會重複值的欄位。
Error: Could not process document within indexer max run time
當索引器無法在允許的執行時間內完成資料來源單一文件的處理時,就會發生此錯誤。 當使用技能組合時,最大遊戲時間會較短。 當發生此錯誤時,如果你將 maxFailedItems 設定為非 0,索引器會在未來執行時繞過該文件,以便索引能繼續進行。 如果你無法跳過任何文件,或是經常遇到這個錯誤,可以考慮將文件拆分成較小的文件,這樣在單一索引器執行中就能部分進展。
Error: Could not project document
此錯誤發生在索引器嘗試將 資料投影到知識庫 時,嘗試失敗。 這個故障可能是持續且可修復的,或者是投影輸出匯的暫時性故障,你可能需要等待並重試才能解決。 以下是一組已知的失敗狀態和可能的解決方案。
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
無法更新容器 'blobUri' 中的投影 Blob 'containerName' |
指定的容器不存在。 | 索引器會檢查指定的容器是否已被建立,必要時會建立該容器,但每次索引器執行只會執行一次檢查。 這個錯誤表示某個步驟後有東西刪除了容器。 要解決這個錯誤,試試這個方法:保持你的儲存帳號資訊不動,等索引器完成後再重新執行索引器。 |
無法更新容器 'blobUri' 中的投影 Blob 'containerName' |
無法將資料寫入傳輸連線:遠端主機強制關閉了現有連線。 | 這預期是 Azure 儲存體 的暫時性故障,因此應透過重新執行索引器來解決。 如果你一直遇到這個錯誤,請提出 客服單 以便進一步調查。 |
無法在表格'projectionRow'中更新列'tableName' |
伺服器很忙。 | 這預期是 Azure 儲存體 的暫時性故障,因此應透過重新執行索引器來解決。 如果你一直遇到這個錯誤,請提出 客服單 以便進一步調查。 |
Error: The cognitive service for skill '<skill-name>' has been throttled
技能執行失敗,因為呼叫 Foundry Tools 的頻率被限制。 通常,這類失敗發生在技能過多同時執行時。 如果你使用 Microsoft.Search.Documents 客戶端函式庫來執行索引器,可以使用 SearchIndexingBufferedSender 來取得失敗步驟的自動重試。 否則,你可以 重置並重新執行索引器。
Error: Expected IndexAction metadata
「預期 IndexAction 元資料」錯誤表示當索引器嘗試讀取文件以判斷應採取的行動時,卻未在文件中找到對應的元資料。 通常,當索引器新增或移除註解快取且未重置索引器時,會發生此錯誤。 為了解決這個問題,你應該 重置並重新執行索引器。
Warning: Skill input was invalid
技能輸入缺失、類型錯誤,或是無效。 你可能會看到以下資訊:
Could not execute skillSkill executed but may have unexpected results
認知技能包含必要的輸入和可選的輸入。 例如, 關鍵詞萃取技能 有兩個必填輸入 text, languageCode且沒有可選輸入。 自訂技能輸入都被視為可選輸入。
如果缺少必要的輸入或輸入類型不正確,該技能會被跳過並產生警告。 略過的技能不會產生輸出。 如果下游技能取用略過技能的輸出,可能會產生其他警告。
如果缺少可選輸入,技能仍會執行,但可能會因缺少輸入而產生意想不到的輸出。
這兩種情況下,這個警告都是因為你的資料格式。 例如,如果你有一份包含firstName、middleName、lastName這些欄位的人物資訊的文件,有些文件可能沒有middleName的條目。 如果您將 middleName 作為管線中技能的輸入傳遞,則此技能輸入有時遺漏是預期情況。 您需要評估您的資料與情境,以判斷是否因警告需要採取任何行動。
如果你想為缺少的輸入提供預設值,可以用 條件技能 產生預設值,然後用 條件技能 的輸出作為技能輸入。
{
"@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
"context": "/document",
"inputs": [
{ "name": "condition", "source": "= $(/document/language) == null" },
{ "name": "whenTrue", "source": "= 'en'" },
{ "name": "whenFalse", "source": "= $(/document/language)" }
],
"outputs": [ { "name": "output", "targetName": "languageWithDefault" } ]
}
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 技能輸入類型錯了 | 「所需的技能輸入並非預期的類型 String。 姓名: text,來源: /document/merged_content。」「所需的技能輸入格式不符合預期。 姓名:text,來源:/document/merged_content。」「無法在非陣列/document/normalized_images/0/imageCelebrities/0/detail/celebrities上反覆迭代。」「無法在非陣列0中選擇/document/normalized_images/0/imageCelebrities/0/detail/celebrities」 |
某些技能會期望特定類型的輸入,例如 情感技能 預期 text 會是一串字串。 如果輸入指定非字串值,技能不會執行,也不會產生任何輸出。 確保你的資料集輸入值類型一致,或使用 自訂 Web API 技能 來預處理輸入。 如果你在陣列上迭代技能,請檢查技能上下文和輸入中的 * 是否位於正確的位置。 通常陣列的上下文和輸入來源都應該以 結尾 * 。 |
| 缺少技能輸入 |
Required skill input is missing. Name: text, Source: /document/merged_content
Missing value /document/normalized_images/0/imageTags.
Unable to select 0 in array /document/pages of length 0.
|
如果所有文件都發生這個警告,可能是輸入路徑有錯字。 檢查屬性名稱大小寫。 檢查路徑中是否有多餘或缺少的 *。 確認資料來源的文件是否提供所需的輸入。 |
| 技能語言程式碼輸入無效 | 技能輸入 languageCode 有以下語言代碼 X,Y,Z,至少有一個無效。 |
詳情請見下方。 |
Warning: Skill input 'languageCode' has the following language codes 'X,Y,Z', at least one of which is invalid.
傳遞至下游技能選用 languageCode 輸入的一或多個值不受支援。 如果你將 LanguageDetectionSkill 的輸出傳給後續技能,而輸出的語言數量超過這些下游技能所支援的數量,這種情況就可能發生。
請注意,如果傳遞無效的 countryHint 輸入給 LanguageDetectionSkill,您也可能會收到類似的警告通知。 如果發生這種情況,請驗證你從資料來源輸入的欄位是否包含有效的 ISO 3166-1 alpha-2 兩字母國家代碼。 如果有些是有效的,有些是無效的,請按照以下指引繼續,但請將languageCode替換為countryHint並將defaultLanguageCode替換為defaultCountryHint,以符合你的使用情境。
如果你知道你的資料集全部都在同一種語言裡,你應該移除 LanguageDetectionSkill 和 languageCode skill 輸入,改用 defaultLanguageCode 該技能的 skill 參數,前提是該語言支援該技能。
如果你知道資料集包含多種語言,因此需要 LanguageDetectionSkill 和 languageCode 輸入,可以考慮加一個 條件技能 ,過濾掉不支援語言的文字,再把文字傳給後續技能。 以下是 EntityRecognitionSkill 可能的範例:
{
"@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
"context": "/document",
"inputs": [
{ "name": "condition", "source": "= $(/document/language) == 'de' || $(/document/language) == 'en' || $(/document/language) == 'es' || $(/document/language) == 'fr' || $(/document/language) == 'it'" },
{ "name": "whenTrue", "source": "/document/content" },
{ "name": "whenFalse", "source": "= null" }
],
"outputs": [ { "name": "output", "targetName": "supportedByEntityRecognitionSkill" } ]
}
以下是目前支援且可產生此錯誤訊息之各技能語言的部分參考:
- EntityRecognitionSkill 支援的語言
- EntityLinkingSkill 支援的語言
- KeyPhraseExtractionSkill 支援的語言
- LanguageDetectionSkill 支援的語言
- PIIDetectionSkill 支援的語言
- SentimentSkill 支援的語言
- 翻譯支援語言
- Text SplitSkill 支援的語言:
da, de, en, es, fi, fr, it, ko, pt
Warning: Skill input was truncated
認知技能限制了一次可分析的文字長度。 如果文字輸入超過限制,文本會在豐富前被截斷。 技能會執行,但不會涵蓋您的所有資料。
在下面的範例 LanguageDetectionSkill 中,如果輸入超過字元限制, 'text' 輸入欄位可能會觸發此警告。 輸入限制可參考 技能參考文件。
{
"@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
"inputs": [
{
"name": "text",
"source": "/document/text"
}
],
"outputs": [...]
}
如果你想確保所有文字都被分析,可以考慮使用 分割技能。
Warning: Web API skill response contains warnings
索引器在技能組執行了該技能,但 Web API 請求的回應顯示有警告。 檢視警告內容,了解您的資料如何受到影響,以及是否需要進一步處理。
Warning: The current indexer configuration does not support incremental progress
此警告僅發生在 Azure Cosmos 資料庫的資料來源。
索引過程中的增量進展確保若索引器執行因短暫失敗或執行時間限制而中斷,索引器下次執行時能從中止處繼續,而不必從頭重新索引整個集合。 當索引大型集合時,這尤其重要。
能夠恢復未完成的索引工作,取決於文件必須依據 _ts 欄位排序。 索引器會利用時間戳決定接下來要選取哪份文件。 如果 _ts 欄位遺失,或索引器無法判斷自訂查詢是否被排序,索引器會從起始開始,你會看到這個警告。
你可以透過配置 assumeOrderByHighWaterMarkColumn 屬性來覆蓋此行為,實現增量進度並抑制此警告。
欲了解更多資訊,請參閱 增量進度與自訂查詢。
Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.
Table Storage 服務對實體屬性的大小有限制。 字串可有 32,000 字元或更少。 若投影的字串屬性超過 32,000 字元,則僅保留前 32,000 個字元。 為了避開此問題,請避免投影32,000字元以上的字串屬性的列。
Warning: Truncated extracted text to X characters
索引器限制了從單一文件中可擷取的文字量。 這個限制取決於價格層級:免費層為32,000字元,基本層64,000字元,標準層400萬字元,標準層S2 800萬字元,標準層S3 1,600萬字元。 被截斷的文字不會被索引。 為了避免這個警告,試著將含有大量文字的文件拆解成多個較小的文件。
欲了解更多資訊,請參閱索引器限制。
Warning: Could not map output field 'X' to search index
引用不存在或空資料的輸出欄位映射會為每份文件產生警告,並導致索引欄位為空。 若要解決此問題,請再次檢查輸出欄位對應來源路徑是否可能有錯字,或使用條件式技能設定預設值。 詳情請參見 輸出場映射 。
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 無法在非陣列上遍歷 | 「無法在非陣列 /document/normalized_images/0/imageCelebrities/0/detail/celebrities上反覆迭代。」 |
當輸出不是陣列時會發生這個錯誤。 如果你認為輸出應該是陣列,請檢查指示的輸出來源場路徑是否有錯誤。 例如,你可能在來源欄位名稱中缺少或多餘 * 的欄位。 也有可能這個技能的輸入是空的,導致陣列是空的。 在 技能輸入無效 部分找到類似細節。 |
無法在非陣列中選擇0 |
「無法在非陣列0中選擇/document/pages。」 |
這種情況可能發生在技能輸出未產生陣列,而輸出來源欄位名稱的路徑中包含陣列索引或 * 的時候。 請再次確認輸出來源欄位名稱中提供的路徑,以及該欄位名稱的欄位值。 在 技能輸入無效 部分找到類似細節。 |
Warning: The data change detection policy is configured to use key column 'X'
資料變更偵測政策 對用來偵測變更的欄位有特定要求。 其中一項要求是,每當來源項目變更時,該欄位必須更新。 另一個要求是該欄的新值必須大於先前的值。 金鑰欄位不符合這個要求,因為它們不會在每次更新時改變。 為了解決此問題,請選擇變更偵測策略的其他欄位。
Warning: Document text appears to be UTF-16 encoded, but is missing a byte order mark
索引器的解析模式需要先知道文字是如何編碼的,才能進行解析。 最常見的兩種文字編碼方式是 UTF-16 和 UTF-8。 UTF-8 是一種可變長度編碼,每個字元長度介於 1 位元組到 4 位元組之間。 UTF-16 是一種固定長度編碼,每個字元長度為 2 位元組。 UTF-16 有兩種不同的變體,big endian 和 little endian。 文字編碼由 byte order mark文字前的一串位元組決定。
| 編碼 | 位元組順序標記 |
|---|---|
| UTF-16 大端序 | 0xFE 0xFF |
| UTF-16 小恩迪安 | 0xFF 0xFE |
| UTF-8 | 0xEF 0xBB 0xBF |
若不存在位元組順序標記,則假設文字編碼為 UTF-8。
要繞過這個警告,請先確定這個 blob 的文字編碼,並加上適當的位元組順序標記。
Warning: Azure Cosmos DB collection 'X' has a Lazy indexing policy. Some data may be lost
採用 懶惰 索引政策的集合無法持續被查詢,導致索引器缺少資料。 為了繞過這個警告,請將你的索引政策改為「一致性」。
Warning: The document contains very long words (longer than 64 characters). These words may result in truncated and/or unreliable model predictions.
此警告來自 Foundry Tools 的語言服務。 在某些情況下,可以安全地忽略這個警告,例如長字串只是個很長的網址。 請注意,當一個單字超過64個字元時,會被截斷成64個字元,這會影響模型的預測。
Error: Cannot write more bytes to the buffer than the configured maximum buffer size
索引器有 文件大小限制。 請確保資料來源中的文件大小小於服務層級所規定的支援大小限制。
Error: Failed to compare value 'X' of type M to value 'Y' of type N.
這個錯誤通常發生在 Azure SQL 索引器中,當所使用的 dataChangeDetectionPolicy 來源欄位類型與索引器預期不符時,尤其是開啟 convertHighWaterMarkToRowVersion 時。
例如,如果用於變更偵測的欄位是 datetime 型別,但由於啟用了 convertHighWaterMarkToRowVersion,索引器預期的是 rowversion 類型,這種不匹配將導致錯誤。
檢查來源中「高水位標記」欄位的資料型態,並相應更新索引器設定。 驗證並更新後,重置並重啟索引器以處理欄位值。
Error: Access denied to Virtual Network/Firewall rules
此錯誤通常由以下原因之一引起:
- 根據你的設定,indexer 需要對 Azure 資源設置防火牆限制。 這些資源可能包括:資料來源、Azure 儲存體 帳號(用於除錯工作、增量豐富或知識庫)、Azure Function(用於網頁 API 自訂技能)或 AI 豐富過程中使用的 Microsoft Foundry 部署。
- 私有端點配置會阻擋索引器對這些資源的存取。
請透過檢視資源配置,確保索引器能存取你的設定元件,確認它們允許流量到所有所需服務:
Error: Credentials provided in the connection string are invalid or have expired
此錯誤發生於 Azure AI 搜尋服務 索引器無法使用提供的連線字串進行認證,或無法存取儲存帳號以驗證憑證時發生。
| 可能原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 過期或輪替的金鑰 | 連線字串包含已過時且已無法使用的金鑰。 | 前往正在聯絡的資源(例如 Azure 儲存體 或 Azure SQL),如果使用基於金鑰的認證,複製最新的存取金鑰,然後相應地更新資料來源或連線字串。 |
| 管理身份未啟用或存取權限未被授予 | AI 搜尋服務 管理識別已啟用,但缺乏所需的存取角色。 | - 在搜尋服務中啟用系統指派或使用者指派的受控識別。 - 在資料來源所需的資源範圍中,為該身分識別指派適當的角色。 例如,針對 Azure Blob 資料來源,在 storage-account 範圍指派 Storage Blob Data Reader。 每個 資料來源 都有自己的許可要求。 |
| 網路/防火牆阻擋身份存取 | 所接觸的資源被設定為限制網路存取。 | 設定 網路設定 以允許 Azure AI 搜尋存取。 |
| 金鑰授權已被停用 | 來源的共享金鑰存取已被移除,但搜尋服務資料來源的設定仍使用基於金鑰的認證。 | 使用 管理身份 驗證,並確保有基於角色的權限。 從 Azure 儲存體 的角度來看,這表示 共享金鑰授權功能會被封鎖,無論是來自儲存帳號本身,還是透過企業層級的 Azure 政策強制執行。 |
Error: Invalid AAD tenant
當 Microsoft 365 索引器中的 SharePoint 無法認證擁有該 SharePoint 網站的 Microsoft Entra 租戶時,這則訊息可能會出現。
TenantId在 SharePoint 資料來源的 連接字串 中是可選的,但你提供的任何值都必須是該站點的 Microsoft Entra 租戶 ID(GUID)。 這個租用戶不一定是您搜尋服務所關聯的 Microsoft Entra 租用戶。
請依照以下指引解決錯誤:
- 對於跨租戶 SharePoint 連線,請在連接字串中將 SharePoint 網站的 Microsoft Entra 租戶 ID 指定為
TenantId。 - 若要在相同的 Microsoft Entra 租用戶內建立連線,請提供 SharePoint 網站的租用戶 ID,或啟用搜尋服務的系統指派受控身分識別。 當您省略
TenantId時,索引持會使用與該身分相關的 Microsoft Entra 資源租用戶。 - 若明確的
TenantId或資源租用戶皆不可用,索引子會報告:Ensure service managed identity is enabled for your service, or TenantId is specified in your 連接字串.
格式不正確且不是 GUID 的值,可能會在您建立或更新資料來源時導致失敗。 錯誤的 Microsoft Entra 租用戶若有良好格式的 ID,可能會通過資料來源驗證,但在索引子驗證時會失敗。 對於執行失敗,請前往 Azure 入口網站的搜尋服務,選擇搜尋管理>索引器,選擇索引器,並檢視其執行歷史與狀態細節。
關於 連接字串 格式及尋找 SharePoint 網站 Microsoft Entra 租戶 ID 的說明,請參見「在 Microsoft 365 索引器中配置 SharePoint」。
Error: Error detecting index schema from data source
用來設定索引器的 Azure 入口網站體驗無法從資料來源取得結構資訊。 這可能是因為短暫的連線問題或網路設定限制,導致 Azure AI 搜尋服務 無法存取來源。
| 原因 | 細節/範例 | 解決方法 |
|---|---|---|
| 短暫通訊問題 | Failed to fetch, this could be due to transient communication errors with the source |
暫時性故障可能因暫時性網路中斷或服務逾時而發生。 重試手術。 如果問題是暫時性的,後續通話中應該會解決。 |
| 私有端點限制 | 資料來源由虛擬網路或私有端點保護,防止索引器存取。 | 如果資料來源位於私人端點後方,請設定 共享私人連結 ,讓 Azure AI 搜尋服務 能私密連接該資源。 確保私有端點連線已獲批准。 |
| 防火牆規則阻擋存取 | 資料來源有防火牆規則,可以阻擋來自 Azure AI 搜尋服務 的請求。 | 更新防火牆設定,允許來自 Azure AI 搜尋服務 的入站流量。 請參閱 「設定防火牆規則以允許索引器存取」。 確保搜尋服務的 IP 或受信任服務例外是被允許的。 |
| 網路設定不允許索引器存取 | 資料來源設定為只允許特定網路,不包含 Azure AI 搜尋。 | 確認資料來源網路設定是否允許透過支援的連接選項之一從 Azure AI 搜尋服務 存取:具備 IP 規則的公開端點、共享私有連結或受信任服務存取。 |