Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo fornece informações e soluções para erros e avisos comuns que possa encontrar durante a indexação e o enriquecimento de IA no Pesquisa de IA do Azure.
A indexação termina quando a contagem de erros excede 'maxFailedItems'.
Se quiser que os indexadores ignorem estes erros (e saltem "documentos falhados"), considere atualizar o maxFailedItems e maxFailedItemsPerBatch conforme descrito aqui.
Nota
Cada documento falhado, juntamente com a sua chave de documento (quando disponível), aparecerá como um erro no estado de execução do indexador. Pode utilizar a API de índice para carregar manualmente os documentos mais tarde, se tiver configurado o indexador para tolerar falhas.
A informação sobre erros neste artigo pode ajudá-lo a resolver erros, permitindo que a indexação continue.
Os avisos não param de indexar, mas indicam condições que podem resultar em resultados inesperados. Se agirás ou não depende dos dados e do teu cenário.
Onde pode encontrar erros específicos do indexador?
Para verificar o estado de um indexador e identificar erros:
Vá ao seu serviço de pesquisa no portal Azure.
À esquerda, expanda Gestão de Pesquisa>Indexadores e selecione um indexador.
Em Histórico de Execução, selecione o estado. Todos os status, incluindo Sucesso, têm detalhes sobre a execução.
Se houver um erro, passe o rato sobre a mensagem de erro. Um painel aparece no lado direito do ecrã a mostrar informações detalhadas sobre o erro.
Erros transitórios
Por várias razões, como interrupções transitórias na comunicação da rede, timeouts de processos de longa duração ou nuances específicas de documentos, é comum encontrar erros transitórios ou avisos durante execuções do indexador. No entanto, estes erros são temporários e devem ser resolvidos em execuções subsequentes do indexador.
Para gerir estes erros de forma eficaz, recomendamos que coloque o seu indexador num calendário, por exemplo, para correr a cada cinco minutos, onde a próxima corrida começa cinco minutos após concluir a primeira, respeitando o limite máximo de tempo de execução do seu serviço. Execuções programadas regularmente ajudam a corrigir erros ou avisos transitórios.
Se um erro persistir em várias execuções de indexadores, provavelmente não é um problema transitório. Nesses casos, consulte a lista abaixo para possíveis soluções.
Propriedades de erro
| Propriedade | Descrição | Exemplo |
|---|---|---|
| Chave | O ID do documento afetado pelo erro ou aviso. | Exemplo do Armazenamento do Azure, onde o ID predefinido é o caminho de armazenamento de metadados: https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf |
| Nome | A operação que causa o erro ou aviso. Isto é gerado pela seguinte estrutura: [category].[subcategory].[resourceType].[resourceName] |
DocumentExtraction.azureblob.myBlobContainerName
Enrichment.WebApiSkill.mySkillName
Projection.SearchIndex.OutputFieldMapping.myOutputFieldName
Projection.SearchIndex.MergeOrUpload.myIndexName
Projection.KnowledgeStore.Table.myTableName
|
| Mensagem | Uma descrição geral do erro ou aviso. | Could not execute skill because the Web Api request failed. |
| Detalhes | Informação específica que pode ser útil para diagnosticar o problema, como a resposta do WebApi caso a execução de uma competência personalizada falhasse. | 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 | Um link para documentação relevante com informações detalhadas para depurar e resolver o problema. Este link frequentemente aponta para uma das secções abaixo desta página. | https://go.microsoft.com/fwlink/?linkid=2106475 |
Error: Could not read document
O indexador não conseguiu ler o documento da fonte de dados. Isto pode acontecer devido a:
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| Tipos de campos inconsistentes entre diferentes documentos |
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.
|
Certifique-se de que o tipo de cada campo é o mesmo em diferentes documentos. Por exemplo, se o campo do primeiro documento 'startTime' for um DateTime, e no segundo documento for uma cadeia de caracteres, esse erro ocorre. |
| Erros do serviço subjacente da fonte de dados | De Azure Cosmos DB: {"Errors":["Request rate is large"]} |
Verifica a tua instância de armazenamento para garantir que está saudável. Poderá precisar de ajustar o escalonamento ou o particionamento. |
| Questões transitórias | 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 |
Ocasionalmente surgem problemas inesperados de conectividade. Tente passar o documento novamente pelo indexador mais tarde. |
Error: Could not extract content or metadata from your document
O indexador com uma fonte de dados Blob não conseguia extrair o conteúdo ou metadados do documento (por exemplo, um ficheiro PDF). Isto pode acontecer devido a:
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| O blob ultrapassa o limite de tamanho | Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. |
Erros de indexação de blobs |
| O Blob tem um tipo de conteúdo não suportado | Document has unsupported content type 'image/png' |
Erros de indexação de blobs |
| O blob é encriptado | Document could not be processed - it may be encrypted or password protected. |
Podes ignorar o blob através das definições de blob. |
| Questões transitórias |
Error processing blob: The request was aborted: The request was canceled.
Document timed out during processing.
|
Ocasionalmente surgem problemas inesperados de conectividade. Tente passar o documento novamente pelo indexador mais tarde. |
Error: Could not parse document
O indexador leu o documento a partir da fonte de dados, mas houve um problema ao converter o conteúdo do documento para o esquema de mapeamento de campos especificado. Isto pode acontecer devido a:
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| A chave do documento está em falta | Document key cannot be missing or empty |
Certifique-se de que todos os documentos têm chaves válidas. A chave do documento é determinada definindo a propriedade 'chave' como parte da definição do índice. Os indexadores emitem este erro quando a propriedade sinalizada como 'chave' não pode ser encontrada num determinado documento. |
| A chave do documento é inválida | Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). |
Certifique-se de que todos os documentos têm chaves válidas. Consulte Indexing Armazenamento de Blobs para mais detalhes. Se estiveres a usar o indexador de blobs e a chave do teu documento for o campo metadata_storage_path, certifica-te de que a definição do indexador inclui uma função de mapeamento base64Encode, com parameters igual a null, em vez de utilizar o caminho em texto simples. |
| A chave do documento é inválida | Document key cannot be longer than 1024 characters |
Modificar a chave do documento para cumprir os requisitos de validação. |
| Não consegui aplicar mapeamento de campos a um campo | Could not apply mapping function 'functionName' to field 'fieldName'. Array cannot be null. Parameter name: bytes |
Verifique novamente os mapeamentos de campos definidos no indexador e compare com os dados do campo especificado do documento falhado. Pode ser necessário modificar os mapeamentos de campos ou os dados do documento. |
| Não conseguia ler o valor do campo | 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.) |
Estes erros devem-se tipicamente a problemas inesperados de conectividade com o serviço subjacente da fonte de dados. Tente passar o documento novamente pelo indexador mais tarde. |
Error: Could not map output field 'xyz' to search index due to deserialization problem while applying mapping function 'abc'
O mapeamento de saída pode ter falhado porque os dados de saída estão no formato errado para a função de mapeamento que estás a usar. Por exemplo, aplicar Base64Encode uma função de mapeamento em dados binários geraria este erro. Para resolver o problema, reexecute o indexador sem especificar a função de mapeamento ou garanta que a função de mapeamento seja compatível com o tipo de dados do campo de saída. Consulte Mapeamento de campo de saída para detalhes.
Error: Could not execute skill
O indexador não foi capaz de executar uma habilidade no conjunto de habilidades.
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| Problemas de conectividade transitória | Ocorreu um erro transitório. Tenta outra vez mais tarde. | Ocasionalmente surgem problemas inesperados de conectividade. Tente passar o documento novamente pelo indexador mais tarde. |
| Potencial bug do produto | Ocorreu um erro inesperado. | Isto indica uma classe desconhecida de falha e pode indicar um bug de produto. Abre um pedido de suporte para obter ajuda. |
| Uma habilidade encontrou um erro durante a execução | (De Merge Skill) Um ou mais valores de offset eram inválidos e não podiam ser analisados. Os itens foram inseridos no final do texto | Use a informação da mensagem de erro para resolver o problema. Este tipo de falha requer ação para ser resolvido. |
Error: Could not execute skill because the Web API request failed
A execução da habilidade falhou porque a chamada à Web API falhou. Normalmente, este tipo de falha ocorre quando são usadas competências personalizadas, caso em que é necessário depurar o seu código personalizado para resolver o problema. Se, em vez disso, a falha for causada por uma competência incorporada, consulte a mensagem de erro para obter ajuda a corrigir o problema.
Ao depurar este problema, certifique-se de prestar atenção a quaisquer alertas de entrada de competência para esta competência. O endpoint da tua Web API pode estar a falhar porque o indexador lhe está a passar uma entrada inesperada.
Error: Could not execute skill because Web API skill response is invalid
A execução da skill falhou porque a chamada à Web API devolveu uma resposta inválida. Normalmente, este tipo de falha ocorre quando são usadas competências personalizadas, caso em que é necessário depurar o seu código personalizado para resolver o problema. Se, em vez disso, a falha for causada por uma competência incorporada, abre um pedido de suporte para obter assistência.
Error: Type of value has a mismatch with column type. Couldn't store in 'xyz' column. Expected type is 'abc'
Se a sua fonte de dados tiver um campo com um tipo de dado diferente do campo que está a tentar mapear no seu índice, pode encontrar este erro. Verifique os tipos de dados do campo da sua fonte de dados e certifique-se de que estão corretamente mapeados para os tipos de dados do seu índice.
Error: Skill did not execute within the time limit
Existem dois casos em que pode encontrar esta mensagem de erro, cada um dos quais deve ser tratado de forma diferente. Siga as instruções abaixo dependendo da habilidade que devolveu este erro para si.
Competências integradas nas Ferramentas de Fundição
Muitas das competências cognitivas incorporadas, como deteção de linguagem, reconhecimento de entidades ou OCR, são apoiadas por um endpoint da API das Foundry Tools. Por vezes, há problemas transitórios com estes endpoints e um pedido expira. Para questões transitórias, não há solução além de esperar e tentar novamente. Como medida de mitigação, considere definir o seu indexador para correr num calendário. A indexação programada continua de onde parou. Assumindo que os problemas transitórios são resolvidos, a indexação e o processamento de competências cognitivas poderão continuar na próxima execução agendada.
Se continuares a ver este erro no mesmo documento para uma competência cognitiva incorporada, abre um ticket de suporte para obter assistência, pois isso não é esperado.
Competências personalizadas
Se encontrares um erro de timeout numa skill personalizada, há algumas coisas que podes tentar. Primeiro, revê a tua habilidade personalizada e certifica-te de que não fica presa num ciclo infinito e que está a devolver um resultado de forma consistente. Depois de confirmar que um resultado foi devolvido, verifique a duração da execução. Se não definiste explicitamente um timeout valor na definição da tua habilidade personalizada, então o padrão timeout é 30 segundos. Se 30 segundos não forem tempo suficiente para a tua habilidade executar, podes especificar um valor maior timeout na definição da tua habilidade personalizada. Aqui está um exemplo de uma definição personalizada de habilidade onde o timeout é definido para 90 segundos:
{
"@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"
}
]
}
O valor máximo que podes definir para o timeout parâmetro é 230 segundos. Se a sua habilidade personalizada não conseguir ser executada de forma consistente em 230 segundos, pode considerar reduzir batchSize a sua habilidade personalizada para que tenha menos documentos para processar numa única execução. Se já definiu a sua batchSize para 1, precisa de reescrever a habilidade para conseguir executar em menos de 230 segundos, ou então dividi-la em múltiplas habilidades personalizadas para que o tempo de execução de qualquer habilidade individual seja no máximo 230 segundos. Consulte a documentação de competências personalizadas para mais informações.
Error: Could not 'MergeOrUpload' | 'Delete' document to the search index
O documento foi lido e processado, mas o indexador não conseguiu adicioná-lo ao índice de pesquisa. Isto pode acontecer devido a:
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| Um campo contém um termo que é excessivamente grande | Um termo no seu documento é maior do que o limite de 32 KB | Pode evitar esta restrição garantindo que o campo não está configurado como filtrável, ordenável ou facetas. |
| O documento é demasiado grande para ser indexado | Um documento é maior do que o tamanho máximo do pedido API | Como indexar grandes conjuntos de dados |
| O documento contém demasiados objetos na coleção | Uma coleção no seu documento excede o máximo de elementos em todos os limites de coleções complexas. 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. |
Recomendamos reduzir o tamanho da coleção complexa no documento para abaixo do limite e evitar uma elevada utilização de armazenamento. |
| Dificuldade em ligar ao índice alvo (que persiste após tentativas) porque o serviço está sob outra carga, como consultas ou indexação. | Não consegui estabelecer ligação para atualizar o índice. O serviço de busca está sob grande carga. | Amplie o seu serviço de pesquisa |
| O serviço de pesquisa está a ser corrigido para atualização do serviço, ou está a meio de uma reconfiguração da topologia. | Não consegui estabelecer ligação para atualizar o índice. O serviço de pesquisa não está disponível. O serviço de pesquisa está em processo de transição. | Configurar o serviço com pelo menos três réplicas para disponibilidade de 99.9% conforme a documentação do SLA. |
| Falha no recurso de computação/rede subjacente (rara) | Não consegui estabelecer ligação para atualizar o índice. Ocorreu uma falha desconhecida. | Configure os indexadores para executarem de acordo com um cronograma para retomar de um estado de falha. |
| Um pedido de indexação feito ao índice alvo não foi reconhecido dentro de um período de timeout devido a problemas de rede. | Não consegui estabelecer ligação ao índice de pesquisa de forma atempada. | Configure os indexadores para executarem de acordo com um cronograma para retomar de um estado de falha. Além disso, tente reduzir o tamanho do lote do indexador se esta condição de erro persistir. |
Error: Could not index document because some of the document's data was not valid
O documento era lido e processado pelo indexador, mas devido a uma incompatibilidade na configuração dos campos do índice e dos dados extraídos e processados pelo indexador, não podia ser adicionado ao índice de pesquisa. Isto pode acontecer devido a:
| Razão | Detalhes/Exemplo |
|---|---|
| O tipo de dados de um ou mais campos extraídos pelo indexador é incompatível com o modelo de dados do campo de índice alvo correspondente. | 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)'. |
| Falhei em extrair qualquer entidade JSON de um valor de cadeia. |
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.'
|
| Falhou em extrair uma coleção de entidades JSON a partir de um valor de string. |
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.'
|
| Um tipo desconhecido foi descoberto no documento original. | Unknown type '_unknown_' cannot be indexed |
| Uma notação incompatível para pontos geográficos foi usada no documento fonte. | WKT POINT string literals are not supported. Use GeoJson point literals instead |
Em todos estes casos, consulte Tipos de Dados Suportados e Mapa de Tipos de Dados para indexadores para garantir que constrói corretamente o esquema do índice e configurou os mapeamentos adequados dos campos do indexador. A mensagem de erro inclui detalhes que podem ajudar a identificar a origem da incompatibilidade.
Error: Integrated change tracking policy cannot be used because table has a composite primary key
Isto aplica-se a tabelas SQL e geralmente acontece quando a chave está definida como chave composta ou quando a tabela definiu um único índice agrupado (como num índice SQL, não num índice Azure Search). A principal razão é que o atributo chave é modificado para ser uma chave primária composta num único índice agrupado. Nesse caso, certifique-se de que a sua tabela SQL não tem um índice cluster único, ou que mapeia o campo chave para um campo que garantisse que não tenha valores duplicados.
Error: Could not process document within indexer max run time
Este erro ocorre quando o indexador não consegue terminar o processamento de um único documento da fonte de dados dentro do tempo de execução permitido. O tempo máximo de execução é mais curto quando se usam conjuntos de habilidades. Quando este erro ocorre, se tiver o maxFailedItems definido para um valor diferente de 0, o indexador contorna o documento em execuções futuras para que a indexação possa progredir. Se não puder saltar nenhum documento, ou se estiver a ver este erro de forma consistente, considere dividir documentos em documentos mais pequenos para que se possa fazer progresso parcial numa única execução do indexador.
Error: Could not project document
Este erro ocorre quando o indexador tenta projetar dados num armazenamento de conhecimento e houve uma falha na tentativa. Esta falha pode ser consistente e solucionável, ou pode ser uma falha transitória com o sumidouro de saída de projeção que poderá ter de esperar e tentar novamente para resolver. Aqui está um conjunto de estados de falha conhecidos e possíveis resoluções.
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
Não foi possível atualizar o blob 'blobUri' de projeção no contentor 'containerName' |
O contentor especificado não existe. | O indexador verifica se o contentor especificado foi criado anteriormente e irá criá-lo se necessário, mas só realiza esta verificação uma vez por execução do indexador. Este erro significa que algo apagou o contentor após este passo. Para resolver este erro, experimente isto: deixe a informação da sua conta de armazenamento intacta, espere que o indexador termine e depois execute novamente o indexador. |
Não foi possível atualizar o blob 'blobUri' de projeção no contentor 'containerName' |
Impossibilidade de escrever dados na ligação de transporte: Uma ligação existente foi forçadamente encerrada pelo host remoto. | Espera-se que isto seja uma falha transitória com o Armazenamento do Azure e, por isso, deve ser resolvido através da nova execução do indexador. Se encontrar este erro de forma consistente, abra um pedido de suporte para que possa ser investigado mais a fundo. |
Não foi possível atualizar a linha 'projectionRow' na tabela 'tableName' |
O servidor está ocupado. | Espera-se que isto seja uma falha transitória com o Armazenamento do Azure e, por isso, deve ser resolvido através da nova execução do indexador. Se encontrar este erro de forma consistente, abra um pedido de suporte para que possa ser investigado mais a fundo. |
Error: The cognitive service for skill '<skill-name>' has been throttled
A execução da skill não teve sucesso porque a chamada para a Foundry Tools foi controlada. Normalmente, esta classe de falhas ocorre quando demasiadas competências são executadas em paralelo. Se estiver a usar a biblioteca de cliente Microsoft.Search.Documents para executar o indexador, pode usar o SearchIndexingBufferedSender para obter uma repetição automática em passos falhados. Caso contrário, pode reiniciar e voltar a executar o indexador.
Error: Expected IndexAction metadata
Um erro de 'Metadados de Indexação Esperados' significa que, quando o indexador tentou ler o documento para identificar qual ação deve ser tomada, não encontrou quaisquer metadados correspondentes no documento. Normalmente, este erro ocorre quando o indexador tem uma cache de anotações adicionada ou removida sem reiniciar o indexador. Para resolver isto, deves reiniciar e voltar a executar o indexador.
Warning: Skill input was invalid
Faltava uma entrada para a habilidade, tinha o tipo errado ou, de outra forma, era inválida. Pode ver a seguinte informação:
Could not execute skillSkill executed but may have unexpected results
As competências cognitivas têm inputs necessários e opcionais. Por exemplo, a habilidade de extração de palavras-chave tem duas entradas textobrigatórias , languageCode, e nenhuma entrada opcional. Entradas de habilidades personalizadas são todas consideradas opcionais.
Se faltarem entradas necessárias ou se a entrada não for do tipo correto, a habilidade é ignorada e gera um aviso. As competências ignoradas não geram resultados. Se as habilidades subsequentes consumirem os resultados da habilidade ignorada, poderão gerar outros avisos.
Se falta uma entrada opcional, a habilidade continua a correr, mas pode produzir uma saída inesperada devido à ausência da entrada.
Em ambos os casos, este aviso deve-se à forma dos seus dados. Por exemplo, se tiver um documento contendo informações sobre pessoas com os campos firstName, , e middleName, pode ter alguns documentos que não têm uma entrada para lastNamemiddleName. Se passares middleName como input para uma skill no pipeline, espera-se que essa entrada de skill esteja em falta por vezes. Precisa de avaliar os seus dados e cenário para determinar se é necessária alguma ação em decorrência deste aviso.
Se quiseres fornecer um valor predefinido para uma entrada em falta, podes usar a habilidade Condicional para gerar um valor predefinido e depois usar a saída da habilidade Condicional como entrada da habilidade.
{
"@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" } ]
}
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| O tipo de habilidade introduzido está incorreto | "A entrada de competências necessária não era do tipo Stringesperado. Nome: text, Fonte: /document/merged_content." "A entrada de dados de habilidades necessária não foi do formato esperado. Nome: text, Fonte: /document/merged_content." "Não é possível iterar sobre /document/normalized_images/0/imageCelebrities/0/detail/celebrities que não seja array." "Não é possível selecionar 0 em /document/normalized_images/0/imageCelebrities/0/detail/celebrities que não seja array." |
Certas competências esperam entradas de tipos específicos, por exemplo, competência de Sentimento espera que text seja uma cadeia de caracteres. Se a entrada especificar um valor que não seja string, então a skill não é executada e não gera saídas. Assegure que o seu conjunto de dados tem valores de entrada uniformes no tipo, ou use uma competência de API Web Personalizada para pré-processar a entrada. Se estiveres a iterar a habilidade sobre um array, verifica se o contexto da habilidade e o input tenham * nas posições corretas. Normalmente, tanto o contexto como a fonte de entrada devem terminar com * para arrays. |
| Falta-se a introdução de competências |
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.
|
Se este aviso ocorrer para todos os documentos, pode haver um erro tipográfico nos caminhos de entrada. Verifique as maiúsculas e minúsculas do nome da propriedade. Verifique se há um * extra ou em falta no caminho. Verifique se os documentos da fonte de dados fornecem as entradas necessárias. |
| A introdução do código da linguagem de habilidades é inválida | A introdução languageCode de competências tem os seguintes códigos X,Y,Zde língua, pelo menos um dos quais é inválido. |
Veja mais detalhes abaixo. |
Warning: Skill input 'languageCode' has the following language codes 'X,Y,Z', at least one of which is invalid.
Um ou mais dos valores passados para a entrada opcional languageCode de uma habilidade a jusante não são suportados. Isto pode acontecer se estiver a passar a saída da LanguageDetectionSkill para competências subsequentes, e a saída consiste em mais linguagens do que as suportadas nessas competências posteriores.
Note que também pode receber um aviso semelhante caso uma entrada inválida countryHint seja enviada para o LanguageDetectionSkill. Se isso acontecer, valide que o campo que está a usar da sua fonte de dados para essa entrada contém códigos de país válidos ISO 3166-1 alpha-2 de duas letras. Se algumas forem válidas e outras inválidas, continue com as seguintes orientações mas substitua languageCode por countryHint e defaultLanguageCode por defaultCountryHint para corresponder ao seu caso de uso.
Se souber que o seu conjunto de dados está todo numa única língua, deve remover o LanguageDetectionSkill e a languageCode entrada da skill e usar o defaultLanguageCode parâmetro da skill, assumindo que a língua é suportada para essa skill.
Se souber que o seu conjunto de dados contém várias línguas e, por isso, precisa da LanguageDetectionSkill e do languageCode input, considere adicionar uma ConditionalSkill para filtrar o texto em línguas não suportadas antes de passar o texto para a skill posterior. Aqui está um exemplo de como isto pode ser para a EntidadRecognitionSkill:
{
"@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" } ]
}
Aqui estão algumas referências das linguagens atualmente suportadas para cada uma das competências que podem produzir esta mensagem de erro:
- Linguagens suportadas pela EntityRecognitionSkill
- Linguagens suportadas pela EntityLinkingSkill
- Linguagens suportadas por KeyPhraseExtractionSkill
- Linguagens suportadas pelo LanguageDetectionSkill
- Linguagens suportadas por PIIDetectionSkill
- Linguagens suportadas pela SentimentSkill
- Linguagens suportadas por tradutor
-
Linguagens suportadas pelo Text SplitSkills :
da, de, en, es, fi, fr, it, ko, pt
Warning: Skill input was truncated
As competências cognitivas limitam o comprimento do texto que pode ser analisado de uma só vez. Se a entrada de texto ultrapassar o limite, o texto é truncado antes de ser enriquecido. A capacidade executa, mas não sobre todos os seus dados.
No exemplo LanguageDetectionSkill abaixo, o 'text' campo de entrada pode disparar este aviso se a entrada ultrapassar o limite de caracteres. Os limites de entrada podem ser encontrados na documentação de referência de competências.
{
"@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
"inputs": [
{
"name": "text",
"source": "/document/text"
}
],
"outputs": [...]
}
Se quiseres garantir que todo o texto é analisado, considera usar a habilidade Split.
Warning: Web API skill response contains warnings
O indexador executou a skill no conjunto de competências, mas a resposta do pedido da Web API indica que existem avisos. Reveja os avisos para perceber como os seus dados são afetados e se é necessária uma ação adicional.
Warning: The current indexer configuration does not support incremental progress
Este aviso ocorre apenas para fontes de dados do Azure Cosmos DB.
O progresso incremental durante a indexação garante que, se a execução do indexador for interrompida por falhas transitórias ou limite de tempo de execução, o indexador possa retomar de onde ficou na próxima execução, em vez de ter de reindexar toda a coleção do zero. Isto é especialmente importante ao indexar grandes coleções.
A capacidade de retomar um trabalho de indexação inacabado baseia-se em ter documentos ordenados pela _ts coluna. O indexador usa o carimbo temporal para determinar qual o documento a seguir. Se a _ts coluna estiver em falta ou se o indexador não conseguir determinar se uma consulta personalizada está ordenada por ela, o indexador começa do início e verá este aviso.
É possível sobrepor este comportamento, permitindo progresso incremental e suprimindo este aviso usando a assumeOrderByHighWaterMarkColumn propriedade de configuração.
Para mais informações, consulte Progresso incremental e consultas personalizadas.
Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.
O serviço de Armazenamento de Tabelas tem limites quanto ao tamanho das propriedades das entidades . As cadeias podem ter 32.000 caracteres ou menos. Se uma linha com uma propriedade de cadeia superior a 32.000 caracteres estiver a ser projetada, apenas os primeiros 32.000 caracteres são preservados. Para contornar este problema, evite projetar linhas com propriedades de string superiores a 32.000 caracteres.
Warning: Truncated extracted text to X characters
Os indexadores limitam a quantidade de texto que pode ser extraída de um único documento. Este limite depende do escalão de preço: 32.000 caracteres para o nível Gratuito, 64.000 para o Básico, 4 milhões para o Standard, 8 milhões para o Standard S2 e 16 milhões para o Standard S3. O texto que foi truncado não será indexado. Para evitar este aviso, tente dividir documentos com grandes quantidades de texto em vários documentos mais pequenos.
Para mais informações, veja Limites do Indexador.
Warning: Could not map output field 'X' to search index
Mapeamentos de campo de saída que referenciam dados inexistentes/nulos gerarão avisos para cada documento e resultarão num campo de índice vazio. Para contornar este problema, verifique novamente os seus percursos de mapeamento de campo de saída para possíveis erros tipográficos, ou defina um valor padrão usando a função Condicional. Consulte Mapeamento de campo de saída para detalhes.
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| Não é possível iterar sobre um tipo que não seja matriz. | Não é possível iterar sobre não matriz /document/normalized_images/0/imageCelebrities/0/detail/celebrities. |
Este erro ocorre quando a saída não é um array. Se achares que a saída deve ser um array, verifica o caminho indicado do campo de origem de saída para erros. Por exemplo, pode haver um * em falta ou em excesso no nome do campo de fonte. Também é possível que a entrada desta habilidade seja nula, resultando num array vazio. Encontre detalhes semelhantes na secção Skill Input foi Inválido. |
Não é possível selecionar 0 em uma estrutura que não é um array |
Não é possível selecionar 0 em /document/pages que não seja uma matriz. |
Isto pode acontecer se a saída de competências não produzir um array e o nome do campo de origem da saída tiver um índice de array ou * no seu caminho. Verifique novamente os caminhos fornecidos nos nomes dos campos fonte de saída e o valor do campo para o nome indicado. Encontre detalhes semelhantes na secção Skill Input foi Inválido. |
Warning: The data change detection policy is configured to use key column 'X'
As políticas de deteção de alterações de dados têm requisitos específicos para as colunas que utilizam para detetar mudanças. Um destes requisitos é que esta coluna seja atualizada sempre que o item de origem for alterado. Outro requisito é que o novo valor desta coluna seja maior do que o valor anterior. As colunas-chave não cumprem este requisito porque não mudam em todas as atualizações. Para contornar este problema, selecione uma coluna diferente para a política de deteção de alterações.
Warning: Document text appears to be UTF-16 encoded, but is missing a byte order mark
Os modos de análise do indexador precisam de saber como o texto é codificado antes de o analisar. As duas formas mais comuns de codificar texto são UTF-16 e UTF-8. UTF-8 é uma codificação de comprimento variável onde cada carácter tem entre 1 e 4 bytes de comprimento. UTF-16 é uma codificação de comprimento fixo onde cada carácter tem 2 bytes. O UTF-16 tem duas variantes diferentes, big endian e little endian. A codificação de texto é determinada por um byte order mark, uma série de bytes antes do texto.
| Codificação | Marca de Ordem de Bytes |
|---|---|
| UTF-16 Big Endian | 0xFE 0xFF |
| UTF-16 Little Endian | 0xFF 0xFE |
| UTF-8 | 0xEF 0xBB 0xBF |
Se não houver marca de ordem de bytes, assume-se que o texto está codificado como UTF-8.
Para contornar este aviso, determine qual é a codificação de texto para essa mancha e adicione a marca de ordem dos bytes apropriada.
Warning: Azure Cosmos DB collection 'X' has a Lazy indexing policy. Some data may be lost
Coleções com políticas de indexação preguiçosas não podem ser consultadas de forma consistente, o que resulta na falta de dados do seu indexador. Para contornar este aviso, altere a sua política de indexação para Consistente.
Warning: The document contains very long words (longer than 64 characters). These words may result in truncated and/or unreliable model predictions.
Este aviso é transmitido pelo serviço de Linguagem da Foundry Tools. Em alguns casos, é seguro ignorar este aviso, por exemplo, se a string longa for apenas um URL longo. Tenha em atenção que, quando uma palavra tem mais de 64 caracteres, é truncada para 64 caracteres, o que pode afetar as previsões do modelo.
Error: Cannot write more bytes to the buffer than the configured maximum buffer size
Os indexadores têm limites de tamanho dos documentos. Certifique-se de que os documentos na sua fonte de dados são inferiores ao limite de tamanho suportado, conforme documentado para o seu nível de serviço.
Error: Failed to compare value 'X' of type M to value 'Y' of type N.
Este erro normalmente acontece nos indexadores SQL do Azure quando o tipo de coluna de origem usado para dataChangeDetectionPolicy não corresponde ao que o indexador espera, especialmente se convertHighWaterMarkToRowVersion estiver ativado.
Por exemplo, se a coluna usada para deteção de alterações for do tipo datetime, mas o indexador esperar um tipo rowversion porque a função convertHighWaterMarkToRowVersion está ativada, a incompatibilidade causará um erro.
Verifique o tipo de dados da coluna 'High Watermark' na fonte e atualize a configuração do indexador em conformidade. Depois de verificado e atualizado, reinicie e execute novamente o indexador para processar os valores das colunas.
Error: Access denied to Virtual Network/Firewall rules.
Este erro ocorre tipicamente devido a uma das seguintes situações:
- Restrições de firewall nos recursos Azure exigidas pelo seu indexador, dependendo da sua configuração. Estes recursos podem incluir: a fonte de dados, a conta Armazenamento do Azure (usada para sessões de depuração, enriquecimento incremental ou armazenamento de conhecimento), Azure Function (usada para competências personalizadas da API web) ou implementações Microsoft Foundry usadas durante o enriquecimento de IA.
- Configurações de endpoints privados que bloqueiam o acesso do indexador a esses recursos.
Assegure que o indexador tem acesso aos seus componentes de configuração ao rever as configurações dos seus recursos para confirmar que permitem tráfego para todos os serviços necessários:
Error: Credentials provided in the connection string are invalid or have expired.
Este erro ocorre quando o indexador Pesquisa de IA do Azure não consegue autenticar-se usando a cadeia de ligação fornecida ou tem problemas no acesso à conta de armazenamento para verificar as credenciais.
| Causa Possível | Detalhes/Exemplo | Resolução |
|---|---|---|
| Chave expirada ou rodada | Uma cadeia de ligação contém uma chave desatualizada que já não funciona. | Vai ao recurso que está a ser contactado (por exemplo, Armazenamento do Azure ou SQL do Azure) e copia as chaves de acesso mais recentes se usares autenticação baseada em chaves, depois atualiza a fonte de dados ou a cadeia de ligação em conformidade. |
| Identidade gerida não ativada ou acesso não concedido | A identidade gerida do serviço de Pesquisa de IA está ativada, mas não tem os papéis de acesso necessários. | - Ativar identidade gerida do sistema ou atribuída pelo utilizador no serviço de pesquisa. - Atribuir funções apropriadas à identidade (por exemplo, Storage Blob Data Reader para contentores de blob). Cada fonte de dados tem os seus próprios requisitos de permissões. |
| Rede/firewall bloqueia o acesso a dados de identidade | O recurso contactado está configurado para restringir o acesso à rede. | Configure as definições de rede para permitir o acesso ao Pesquisa de IA do Azure. |
| A autorização de chaves foi desativada | O acesso à chave partilhada foi removido na fonte, mas a configuração da fonte de dados do serviço de pesquisa continua a usar autenticação baseada em chaves. | Use autenticação com identidade gerida e assegure que as permissões baseadas em funções estão em vigor. Do ponto de vista do Armazenamento do Azure, isto significa que a funcionalidade de autorização de chaves partilhadas é bloqueada, seja a partir da própria conta de armazenamento, quer imposta através de Políticas Azure a nível empresarial. |
Error: Error detecting index schema from data source
A experiência do portal Azure usada para configurar o indexador não conseguiu recuperar a informação do esquema da fonte de dados. Isto pode acontecer devido a problemas de conectividade transitória ou restrições de configuração de rede que impedem o Pesquisa de IA do Azure de aceder à fonte.
| Razão | Detalhes/Exemplo | Resolução |
|---|---|---|
| Problemas de comunicação transitória | Failed to fetch, this could be due to transient communication errors with the source |
Falhas transitórias podem ocorrer devido a interrupções temporárias da rede ou tempos de espera do serviço. Tente novamente a operação. Se o problema for passageiro, resolver-se-á nas chamadas seguintes. |
| Restrições de pontos finais privados | A fonte de dados é protegida por uma rede virtual ou ponto final privado, impedindo o acesso pelo indexador. | Se a fonte de dados estiver atrás de um endpoint privado, configure um link privado partilhado para que o Pesquisa de IA do Azure possa ligar-se privadamente ao recurso. Assegure que a ligação ao endpoint privado está aprovada. |
| Regras de firewall bloqueando o acesso | A fonte de dados tem regras de firewall que bloqueiam pedidos do Pesquisa de IA do Azure. | Atualize as definições do firewall para permitir tráfego de entrada do Pesquisa de IA do Azure. Veja configurar regras de firewall para permitir o acesso ao indexador. Assegure que o IP do serviço de pesquisa ou as exceções de serviço confiável sejam permitidos. |
| A configuração da rede não permite o acesso do indexador | A fonte de dados está configurada para permitir apenas redes selecionadas, sem incluir Pesquisa de IA do Azure. | Verifique se a configuração da rede da fonte de dados permite o acesso a partir do Pesquisa de IA do Azure usando uma das opções de conectividade suportadas: endpoint público com regras IP, ligação privada partilhada ou acesso a serviço de confiança. |