Share via


Azure AI Search의 일반적인 인덱서 오류 및 경고 문제 해결

이 문서에서는 Azure AI Search에서 인덱싱 및 AI 보강 중에 발생할 수 있는 일반적인 오류 및 경고에 대한 정보와 솔루션을 제공합니다.

오류 수가 'maxFailedItems'를 초과하면 인덱싱이 중지됩니다.

인덱서가 이러한 오류를 무시하고 "실패한 문서"를 건너뛰도록 하려면 여기에 설명된 대로 maxFailedItemsmaxFailedItemsPerBatch를 업데이트하는 것이 좋습니다.

참고 항목

실패한 각 문서는 문서 키(사용 가능한 경우)와 함께 인덱서 실행 상태에서 오류로 표시됩니다. 오류를 허용하도록 인덱서를 설정한 경우 인덱스 api를 활용하여 나중에 수동으로 문서를 업로드할 수 있습니다.

이 문서의 오류 정보는 오류를 해결하여 인덱싱을 계속하는 데 도움이 될 수 있습니다.

경고는 인덱싱을 중지하지 않지만 예기치 않은 결과가 발생할 수 있는 조건을 표시합니다. 조치 수행 여부는 데이터와 시나리오에 따라 달라집니다.

특정 인덱서 오류는 어디에서 찾을 수 있나요?

Azure Portal에서 인덱서 상태를 확인하고 오류를 식별하려면 다음 단계를 수행합니다.

  1. Azure Portal로 이동하여 AI Search Service를 찾습니다.
  2. AI Search Service를 사용하기 시작했으면 '인덱서' 탭을 클릭합니다.
  3. 인덱서 목록에서 확인하려는 특정 인덱서를 식별합니다.
  4. '실행 기록' 열 아래에서 선택한 인덱서와 연결된 '상태' 하이퍼링크를 클릭합니다.
  5. 오류가 발생하면 오류 메시지를 마우스로 가리킵니다. 화면 오른쪽에 오류에 대한 자세한 정보가 표시된 창이 표시됩니다.

일시적 오류

일시적인 네트워크 통신 중단, 장기간 실행되는 프로세스의 시간 초과, 특정 문서의 뉘앙스 등 다양한 이유로 인해 인덱서 실행 중에 일시적인 오류나 경고가 발생하는 것이 일반적입니다. 그러나 이러한 오류는 일시적이므로 후속 인덱서 실행에서 해결해야 합니다.

이러한 오류를 효과적으로 관리하려면 예를 들어 5분마다 실행되도록 인덱서의 스케줄을 설정하는 것이 좋습니다. 즉, 다음 실행은 최대 런타임 제한을 준수하여 첫 번째 실행이 완료된 후 5분 후에 시작됩니다. 정기적으로 예약된 실행은 일시적인 오류나 경고를 신속하게 수정하는 데 도움이 됩니다.

여러 번 인덱서를 실행하는 동안 오류가 지속되는 경우 일시적인 문제가 아닐 가능성이 높습니다. 이러한 경우 아래 목록에서 가능한 해결 방법을 참조하세요. 인덱싱 일정이 항상 인덱서 제한 가이드에 설명된 제한 사항에 부합하는지 확인하세요.

오류 속성

API 버전 2019-05-06부터 항목 수준 인덱서 오류 및 경고는 원인 및 다음 단계를 보다 명확하게 이해할 수 있도록 구조화되어 있습니다. 다음과 같은 속성을 포함하고 있습니다.

속성 Description 예시
오류 또는 경고의 영향을 받는 문서의 문서 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...
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' 필드가 날짜/시간이고 두 번째 문서에서는 문자열인 경우 이 오류가 발생합니다.
데이터 원본의 기본 서비스에서 발생하는 오류 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' 속성을 설정할 때 결정됩니다. 특정 문서에서 '키'로 플래그가 지정된 속성을 찾을 수 없으면 인덱서가 이 오류를 내보냅니다.
문서 키가 잘못되었습니다. Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). 모든 문서에 유효한 문서 키가 있는지 확인합니다. 자세한 내용은 Blob Storage 인덱싱을 검토하세요. BLOB 인덱서를 사용 중이고 문서 키가 metadata_storage_path 필드인 경우, 인덱서 정의에 일반 텍스트의 경로 대신 parameters이(가) nullbase64Encode 매핑 함수가 있는지 확인합니다.
문서 키가 잘못되었습니다. 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에 대한 호출이 실패하여 기술 실행이 실패했습니다. 일반적으로 사용자 지정 기술이 사용되면 이 종류의 오류가 발생하며, 이 경우 사용자 지정 코드를 디버그하여 문제를 해결해야 합니다. 기본 제공 기술에서 오류가 발생한 경우 문제 해결에 도움이 되는 오류 메시지를 참조하세요.

이 문제를 디버그할 때 이 기술에 대한 기술 입력 경고에 주의해야 합니다. 인덱서가 예기치 않은 입력을 전달하고 있어서 웹 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

이 오류 메시지가 표시될 수 있는 두 가지 상황이 있으며 각각 다른 방법으로 처리해야 합니다. 이 오류를 반환한 기술에 따라 아래 지침을 따릅니다.

기본 제공 Azure AI 서비스 기술

언어 감지, 엔터티 인식, OCR 등의 여러 기본 제공 인식 기술은 Azure AI Services 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

문서를 읽고 처리했지만 인덱서가 문서를 검색 인덱스에 추가할 수 없습니다. 이 문제는 다음과 같은 경우에 발생할 수 있습니다.

원인 세부 정보/예제 해결
필드에 너무 큰 기간이 있습니다. 문서의 기간이 32KB 제한을 초과합니다. 필드가 필터링 가능, 패싯 가능 또는 정렬 가능으로 구성되지 않도록 하여 이 제한을 방지할 수 있습니다.
문서가 너무 커서 인덱싱할 수 있습니다. 문서가 최대 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. 문서의 복합 컬렉션 크기를 제한 아래로 줄여서 스토리지 사용률을 낮추는 것이 좋습니다.
서비스에서 쿼리, 인덱싱 등의 다른 부하를 처리하고 있으므로 대상 인덱스에 연결하는 데 문제가 있습니다(재시도 후에도 문제가 지속됨). 인덱스 업데이트를 위한 연결을 설정하지 못했습니다. Search Service의 부하가 높습니다. Search Service 스케일 업
서비스 업데이트를 위해 Search Service가 패치 중이거나 토폴로지를 다시 구성하는 중입니다. 인덱스 업데이트를 위한 연결을 설정하지 못했습니다. Search Service가 현재 다운되었습니다/검색 서비스를 전환 중입니다. SLA 설명서에 따라 99.9%의 가용성을 제공하도록 3개 이상의 복제본을 사용하여 서비스 구성
기본 컴퓨팅/네트워킹 리소스에서 오류가 발생합니다(드문 경우). 인덱스 업데이트를 위한 연결을 설정하지 못했습니다. 알 수 없는 오류가 발생했습니다. 일정에 따라 실행하여 실패 상태에서 선택할 수 있도록 인덱서를 구성합니다.
네트워크 문제로 인해 대상 인덱스에 대해 수행된 인덱싱 요청이 시간 제한 기간 내에 승인되지 않았습니다. 검색 인덱스에 대한 연결을 적시에 설정할 수 없습니다. 일정에 따라 실행하여 실패 상태에서 선택할 수 있도록 인덱서를 구성합니다. 또한 이 오류 조건이 지속되면 인덱서 일괄 처리 크기를 줄여 보세요.

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 테이블에 적용되며, 일반적으로 키가 복합 키로 정의되거나 테이블에서 Azure Search 인덱스가 아닌 SQL 인덱스처럼 고유 클러스터형 인덱스를 정의한 경우에 발생합니다. 주된 이유는 고유 클러스터형 인덱스의 키 특성이 복합 기본 키로 수정되기 때문입니다. 이 경우 고유한 클러스터형 인덱스가 SQL 테이블에 없거나 키 필드를 중복 값이​ 없도록 보장되는 필드에 매핑해야 합니다.

Error: Could not process document within indexer max run time

이 오류는 인덱서가 허용된 실행 시간 내에 데이터 원본의 단일 문서 처리를 완료할 수 없는 경우에 발생합니다. 기술 세트를 사용하는 경우 최대 실행 시간이 짧아집니다. 이 오류가 발생하는 경우 maxFailedItems가 0이 아닌 값으로 설정되었으면 인덱서는 인덱싱이 계속 진행될 수 있도록 이후 실행에서 문서를 우회합니다. 문서를 건너뛸 수 없거나 이 오류가 지속적으로 표시되는 경우 단일 인덱서 실행 내에서 부분적인 진행이 이루어질 수 있도록 문서를 더 작은 문서로 나누는 것을 고려합니다.

Error: Could not project document

인덱서에서 데이터를 지식 저장소에 프로젝션하려고 시도했지만 시도가 실패한 경우 이 오류가 발생합니다. 이 오류가 일관적이고 수정 가능한 오류일 수도 있고, 해결하려면 기다렸다가 다시 시도해야 하는 프로젝션 출력 싱크가 있는 일시적 오류일 수도 있습니다. 알려진 오류 상태 및 가능한 해결 방법은 다음과 같습니다.

원인 세부 정보/예제 해결
'containerName' 컨테이너의 프로젝션 Blob 'blobUri'를 업데이트할 수 없습니다. 지정된 컨테이너가 없습니다. 인덱서는 지정한 컨테이너가 이전에 생성되었는지 여부를 확인하고 필요한 경우 이 컨테이너를 만들지만, 인덱서 실행당 한 번만 이 검사를 수행합니다. 이 오류는 이 단계 후에 어떤 이유로 컨테이너가 삭제되었음을 의미합니다. 이 오류를 해결하려면 스토리지 계정 정보를 그대로 두고 인덱서가 완료될 때까지 기다렸다가 인덱서를 다시 실행합니다.
'containerName' 컨테이너의 프로젝션 Blob 'blobUri'를 업데이트할 수 없습니다. 전송 연결에 데이터를 쓸 수 없습니다. 원격 호스트가 기존 연결을 강제로 닫았습니다. Azure Storage의 일시적인 오류로 예상되며 인덱서를 다시 실행하여 해결할 수 있습니다. 이 오류가 지속적으로 발생하면 자세히 조사할 수 있도록 지원 티켓을 제출하세요.
'tableName' 테이블의 'projectionRow' 행을 업데이트할 수 없습니다. 서버가 사용 중입니다. Azure Storage의 일시적인 오류로 예상되며 인덱서를 다시 실행하여 해결할 수 있습니다. 이 오류가 지속적으로 발생하면 자세히 조사할 수 있도록 지원 티켓을 제출하세요.

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

Azure AI Services에 대한 호출이 제한되어 기술 실행이 실패했습니다. 일반적으로 너무 많은 기술이 병렬로 실행되면 이 종류의 오류가 발생합니다. Microsoft.Search.Documents 클라이언트 라이브러리를 사용하여 인덱서를 실행하는 경우 SearchIndexingBufferedSender를 사용하여 실패한 단계에서 자동으로 다시 시도할 수 있습니다. 그렇지 않은 경우 인덱서를 다시 설정하여 다시 실행할 수 있습니다.

Error: Expected IndexAction metadata

'예상 IndexAction 메타데이터' 오류는 인덱서가 어떤 작업을 수행해야 하는지 식별하기 위해 문서를 읽으려고 시도했지만 문서에서 해당 메타데이터를 찾지 못했음을 의미합니다. 일반적으로 이 오류는 인덱서를 다시 설정하지 않고 인덱서에 주석 캐시를 추가하거나 제거한 경우에 발생합니다. 이 문제를 해결하려면 인덱서를 다시 설정하고 다시 실행해야 합니다.

Warning: Skill input was invalid

기술에 대한 입력이 누락되었거나, 형식이 잘못되었거나, 유효하지 않습니다. 다음 정보를 참조하세요.

  • Could not execute skill

  • Skill executed but may have unexpected results

인식 기술에는 필수 입력과 선택적 입력이 있습니다. 예를 들어 핵심 구 추출 기술에는 text, languageCode의 두 가지 필수 입력이 있으며 선택적 입력은 없습니다. 사용자 지정 기술 입력은 모두 선택적 입력으로 간주됩니다.

필수 입력이 없거나 올바른 입력 형식이 아닌 경우 기술을 건너뛰고 경고를 생성합니다. 건너뛴 기술은 출력을 생성하지 않습니다. 다운스트림 기술에서 건너뛴 기술의 출력을 사용하는 경우 다른 경고를 생성할 수 있습니다.

선택적 입력이 없으면 기술이 계속 실행되지만 누락된 입력으로 인해 예기치 않은 출력을 생성할 수 있습니다.

두 경우 모두 데이터의 셰이프 때문에 경고가 발생합니다. 예를 들어 firstName, middleNamelastName 필드를 사용하여 사용자에 대한 정보가 포함된 문서가 있는 경우 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가 문자열이 될 것으로 예상합니다. 입력에서 문자열이 아닌 값을 지정하면 기술이 실행되지 않고 출력을 생성하지 않습니다. 데이터 세트의 입력 값 형식이 균일한지 확인하거나 사용자 지정 웹 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의 두 자로 된 국가 번호가 데이터 원본에서 사용하는 필드에 포함되어 있는지 확인합니다. 일부는 유효하고 일부는 잘못된 경우 다음 지침을 계속 진행하되, 사용 사례와 일치하도록 languageCodecountryHint로 바꾸고 defaultLanguageCodedefaultCountryHint로 바꿉니다.

데이터 세트가 전부 한 가지 언어로 작성되는 경우 해당 기술에 대한 언어가 지원된다는 가정 하에 LanguageDetectionSkilllanguageCode 기술 입력을 제거하고 해당 기술에 대한 defaultLanguageCode 기술 매개 변수를 대신 사용해야 합니다.

데이터 세트에 여러 언어가 포함되어 있다는 것을 알고 있기 때문에 LanguageDetectionSkilllanguageCode 입력이 필요한 경우 텍스트를 다운스트림 기술로 전달하기 전에는 지원되지 않는 언어로 텍스트를 필터링하도록 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

인덱서에서 기술 세트의 기술을 실행했지만 웹 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.

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

존재하지 않는/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 Little 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 Services의 Language 서비스에서 전달됩니다. 긴 문자열이 단지 긴 URL인 경우와 같이 일부 경우에는 이 경고를 무시해도 안전합니다. 단어가 64자를 초과하면 모델 예측에 영향을 줄 수 있는 64자로 잘립니다.

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

인덱서에는 문서 크기 제한이 있습니다. 서비스 계층에 대해 설명된 대로 데이터 원본의 문서가 지원되는 크기 제한보다 작은지 확인합니다.