針對 Azure AI 搜尋中的常見索引器錯誤和警告進行疑難解答

本文提供您在 Azure AI 搜尋服務中索引編製和 AI 擴充期間可能會遇到之常見錯誤和警告的資訊和解決方案。

當錯誤計數超過 『maxFailedItems』 時,索引編製就會停止。

如果您想要索引器忽略這些錯誤(並略過「失敗的檔」),請考慮更新 maxFailedItemsmaxFailedItemsPerBatch如下所示

注意

每個失敗的檔及其檔案索引鍵(可用時)會顯示為索引器執行狀態的錯誤。 如果您已將索引器設定為容許失敗,則可以利用 索引 API 在稍後手動上傳檔。

本文中的錯誤資訊可協助您解決錯誤,以便繼續編製索引。

警告不會停止編製索引,但它們確實表示可能導致非預期結果的條件。 不論您採取動作是否取決於數據和案例。

您可以在何處找到特定的索引器錯誤?

若要確認索引器狀態並識別 Azure 入口網站 中的錯誤,請遵循下列步驟:

  1. 流覽至 Azure 入口網站,並找出您的 AI 搜尋服務。
  2. 進入 AI 搜尋服務 之後,請按兩下 [索引器] 索引標籤。
  3. 從索引器清單中,識別您想要驗證的特定索引器。
  4. 在 [執行歷程記錄] 數據行底下,按兩下與所選索引器相關聯的 [狀態] 超連結。
  5. 如果發生錯誤,請將滑鼠停留在錯誤訊息上。 畫面右側會出現一個窗格,其中顯示錯誤的詳細資訊。

暫時性錯誤

基於各種原因,例如暫時性網路通訊中斷、長時間執行進程逾時或特定檔細微差別,在索引器執行期間通常會發生暫時性錯誤或警告。 不過,這些錯誤是暫時性的,應該在後續的索引器執行中解決。

若要有效地管理這些錯誤,建議您 將索引器排定在排程上,例如每隔五分鐘執行一次。 這表示下一次執行會在第一次執行完成後五分鐘開始,並 遵守最大運行時間限制。 定期排程的執行有助於迅速修正任何暫時性錯誤或警告。

如果您注意到在多個索引器執行時發生錯誤,可能不是暫時性問題。 在這種情況下,請參閱下列清單以取得潛在的解決方案。 請注意,請務必確保您的編製索引排程符合我們的索引器限制指南中所述的限制。

錯誤屬性

從 API 版本 2019-05-06開始,專案層級的索引器錯誤和警告會結構化,以提供更清楚的原因和後續步驟。 它們包含下列屬性:

屬性 說明 範例
機碼 受錯誤或警告影響之檔的文件標識碼。 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...
DocumentationLink 相關文件的連結,其中包含偵錯和解決問題的詳細資訊。 此連結通常會指向此頁面上的下列其中一個區段。 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 DB: {"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 確定所有檔案都有有效的文件金鑰。 檔索引鍵是藉由將 『key』 屬性設定為索引定義的一部分來決定。 索引器會在特定檔上找不到標示為 『key』 的屬性時發出此錯誤。
檔索引鍵無效 Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). 確定所有檔案都有有效的文件金鑰。 如需詳細資訊,請檢閱索引 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

索引器無法在技能集中執行技能。

原因 詳細數據/範例 解決方法
暫時性連線問題 發生暫時性錯誤。 請稍後再試一次。 偶爾會有非預期的連線問題。 請稍後再嘗試透過索引器執行檔。
潛在的產品錯誤 發生未預期的錯誤。 這表示未知的失敗類別,而且可以指出產品 Bug。 提出支援票證以取得協助。
技能在執行期間發生錯誤 (從合併技能)一或多個位移值無效,無法剖析。 在文字結尾插入專案 使用錯誤訊息中的資訊來修正問題。 這種失敗需要動作才能解決。

Error: Could not execute skill because the Web API request failed

技能執行失敗,因為對 Web API 的呼叫失敗。 一般而言,當使用自定義技能時,就會發生這種失敗類別,在此情況下,您需要對自定義程式代碼進行偵錯以解決問題。 如果失敗是來自內建技能,請參閱錯誤訊息以取得修正問題的說明。

對此問題進行偵錯時,請務必注意此技能的任何 技能輸入警告 。 您的 Web API 端點可能會失敗,因為索引器正在傳遞非預期的輸入。

Error: Could not execute skill because Web API skill response is invalid

技能執行失敗,因為對 Web 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

有兩種情況可能會發生此錯誤訊息,每個訊息都應該以不同的方式處理。 請遵循下列指示,視技能為您傳回此錯誤的技能而定。

內建的 Azure AI 服務技能

許多內建認知技能,例如語言偵測、實體辨識或 OCR,都受到 Azure AI 服務 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 的限制 您可以藉由確保欄位未設定為可篩選、可 Facet 或可排序,來避免這項限制。
檔太大而無法編製索引 檔大於 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

當索引器嘗試 將數據投影到知識存放區 ,且嘗試失敗時,就會發生此錯誤。 此失敗可能是一致且可修正的,或可能是投影輸出接收的暫時性失敗,您可能需要等候並重試才能解決。 以下是一組已知的失敗狀態和可能的解決方案。

原因 詳細數據/範例 解決方法
無法更新容器中的投影 Blob 'blobUri''containerName' 指定的容器不存在。 索引器會檢查先前是否已建立指定的容器,並在必要時建立它,但只會在每個索引器執行一次此檢查。 此錯誤表示此步驟之後,某些專案已刪除容器。 若要解決此錯誤,請嘗試下列動作:讓記憶體帳戶資訊保持單獨、等候索引器完成,然後重新執行索引器。
無法更新容器中的投影 Blob 'blobUri''containerName' 無法將數據寫入傳輸連線:遠端主機強行關閉現有的連線。 這必須是暫時性失敗,Azure 儲存體,因此應該藉由重新執行索引器來解決。 如果您一致遇到此錯誤,請提出 支援票證 ,以便進一步調查。
無法更新數據表中的數據列'projectionRow''tableName' 伺服器忙碌中。 這必須是暫時性失敗,且 Azure 儲存體,因此應該藉由重新執行索引器來解決。 如果您一致遇到此錯誤,請提出 支援票證 ,以便進一步調查。

Error: The cognitive service for skill '<skill-name>' has been throttled

技能執行失敗,因為對 Azure AI 服務的呼叫已節流。 一般而言,當太多技能平行執行時,就會發生這種失敗類別。 如果您使用 Microsoft.Search.Documents 用戶端連結庫來執行索引器,您可以使用 SearchIndexingBufferedSender 來取得失敗步驟的自動重試。 否則,您可以 重設並重新執行索引器

Warning: Skill input was invalid

技能的輸入遺失、類型錯誤或無效。 您可能會看到下列資訊:

  • Could not execute skill

  • Skill executed but may have unexpected results

認知技能具有必要的輸入和選擇性輸入。 例如,關鍵片語擷 取技能 有兩個必要的輸入 textlanguageCode和 沒有選擇性的輸入。 自定義技能輸入全都視為選擇性輸入。

如果遺漏必要的輸入,或輸入不是正確的類型,則會略過技能併產生警告。 略過技能不會產生輸出。 如果下游技能取用略過技能的輸出,他們可能會產生其他警告。

如果遺漏選擇性輸入,技能仍會執行,但可能會因為缺少輸入而產生非預期的輸出。

在這兩種情況下,此警告都是因為數據的形狀所造成。 例如,如果您有包含欄位 firstNamemiddleNamelastName之人員相關信息的檔案,您可能會有一些沒有 的項目 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。」「無法在非陣列/document/normalized_images/0/imageCelebrities/0/detail/celebrities中選取0 某些技能需要特定類型的輸入,例如 情感技能 預期 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輸出傳遞至後續技能,而且輸出包含的語言比那些下游技能支援的語言還要多,就可能發生此情況。

請注意,如果傳遞至 LanguageDetectionSkill 的輸入無效 countryHint ,您也可以收到類似此警告的警告。 如果發生這種情況,請驗證您從數據源使用該輸入的欄位是否包含有效的 ISO 3166-1 alpha-2 兩個字母國家/地區代碼。 如果有些有效且有些無效,請繼續進行下列指引,但以 取代 languageCodecountryHintdefaultLanguageCodedefaultCountryHint 以符合您的使用案例。

如果您知道數據集全都使用一種語言,您應該移除 LanguageDetectionSkilllanguageCode 技能輸入,並改用 defaultLanguageCode 該技能的技能參數,假設該技能支援該語言。

如果您知道數據集包含多種語言,因此您需要 LanguageDetectionSkill 和languageCode輸入,請考慮新增 ConditionalSkill 來篩選出具有不支持語言的文字,再將文字傳遞至下游技能。 以下是 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" } ]
}

以下是每個可產生此錯誤訊息之技能目前支援語言的一些參考:

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 DB 數據源發生。

索引編製期間的累加進度可確保如果索引器執行因暫時性失敗或運行時間限制而中斷,索引器就可以在下一次執行時從頭開始擷取該索引器離開的位置,而不必從頭重新編製整個集合的索引。 在編制大型集合的索引時,這特別重要。

繼續未完成的索引編製工作的能力,會假設有數據行排序 _ts 的檔。 索引器會使用時間戳來判斷下一個要挑選的檔。 _ts如果數據行遺失,或索引器無法判斷自定義查詢是否依它排序,索引器就會從頭開始,您會看到這個警告。

您可以使用組態屬性來覆寫此行為、啟用累加進度並隱藏此警告 assumeOrderByHighWaterMarkColumn

如需詳細資訊,請參閱 累加進度和自定義查詢

Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.

數據表 儲存體 服務對實體屬性的大小有限制。 字串可以有 32,000 個字元或更少。 如果投影字串屬性超過32,000個字元的數據列,則只會保留前32,000個字元。 若要解決此問題,請避免投影字串屬性超過 32,000 個字元的數據列。

Warning: Truncated extracted text to X characters

索引器會限制可從任何一份檔擷取多少文字。 此限制取決於定價層:免費層 32,000 個字元、基本層為 64,000 個字元、標準 S2 為 400 萬個字元、標準 S2 為 800 萬個字符,標準 S3 為 1600 萬個字符。 截斷的文字將不會編製索引。 若要避免此警告,請嘗試將含有大量文字的檔分成多個較小的檔。

如需詳細資訊,請參閱 索引器限制

Warning: Could not map output field 'X' to search index

參考不存在/Null 數據的輸出欄位對應會產生每個文件的警告,併產生空的索引欄位。 若要解決此問題,請仔細檢查輸出字段對應來源路徑是否有可能的錯字,或使用條件式技能設定預設值。 如需詳細資訊,請參閱 輸出欄位對應

原因 詳細數據/範例 解決方法
無法逐一查看非陣列 「無法逐一查看非陣列 /document/normalized_images/0/imageCelebrities/0/detail/celebrities。」 當輸出不是陣列時,就會發生此錯誤。 如果您認為輸出應該是陣列,請檢查指定的輸出來源欄位路徑是否有錯誤。 例如,您可能在來源功能變數名稱中有遺漏或額外 * 專案。 此技能的輸入也可能是 Null,因而產生空陣列。 在 [技能輸入無效] 區段中尋找類似的詳細數據。
無法在非陣列中選取0 「無法在非陣列/document/pages中選取 0 」。 如果技能輸出不會產生陣列,而且輸出來源功能變數名稱具有陣列索引或其 * 路徑,就可能發生此情況。 請仔細檢查輸出來源功能變數名稱中提供的路徑,以及所指示功能變數名稱的域值。 在 [技能輸入無效] 區段中尋找類似的詳細數據。

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 endianlittle endian。 文字編碼是由 , byte order mark在文字之前由一系列位元組決定。

編碼方式 位元組順序標記
UTF-16 Big Endian 0xFE 0xFF
UTF-16 小 Endian 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.

此警告會從 Azure AI 服務的語言服務傳遞。 在某些情況下,可以放心地忽略這個警告,例如,如果長字串只是長 URL。 請注意,當單字超過 64 個字元時,其會截斷為 64 個字元,這可能會影響模型預測。

Error: Cannot write more bytes to the buffer than the configured maximum buffer size

索引器具有 檔案大小限制。 請確定數據源中的檔小於支援的大小限制,如服務層級所述。