Risoluzione dei problemi comuni relativi a errori e avvisi dell'indicizzatore in Ricerca di intelligenza artificiale di Azure
Questo articolo fornisce informazioni e soluzioni a errori e avvisi comuni che possono verificarsi durante l'indicizzazione e l'arricchimento tramite intelligenza artificiale in Ricerca di intelligenza artificiale di Azure.
L'indicizzazione si arresta quando il conteggio degli errori supera 'maxFailedItems'.
Se si vuole che gli indicizzatori ignorino questi errori (e saltino i "documenti non riusciti"), si consiglia di aggiornare maxFailedItems
e maxFailedItemsPerBatch
come descritto qui.
Nota
Ogni documento non riuscito insieme alla chiave del documento (se disponibile) verrà visualizzato come errore nello stato di esecuzione dell'indicizzatore. È possibile usare l'API di indice per caricare manualmente i documenti in un secondo momento se è stato impostato l'indicizzatore per tollerare gli errori.
Le informazioni sull'errore contenute in questo articolo possono aiutare a risolvere gli errori, consentendo l'indicizzazione per continuare.
Gli avvisi non arrestano l'indicizzazione, ma indicano condizioni che potrebbero causare risultati imprevisti. Se si esegue o meno un'azione dipende dai dati e dallo scenario.
Per verificare lo stato di un indicizzatore e identificare gli errori nel portale di Azure, seguire questa procedura:
Accedere al portale di Azure e trovare il servizio di ricerca.
A sinistra espandere Cerca indicizzatori di gestione>e selezionare un indicizzatore.
In Cronologia esecuzioni selezionare lo stato. Tutti gli stati, tra cui Operazione riuscita, hanno informazioni dettagliate sull'esecuzione.
Se si verifica un errore, passare il puntatore del mouse sul messaggio di errore. Viene visualizzato un riquadro sul lato destro della schermata che visualizza informazioni dettagliate sull'errore.
Per vari motivi, ad esempio interruzioni di comunicazione di rete temporanee, timeout da processi a esecuzione prolungata o sfumature specifiche del documento, è facile riscontrare errori o avvisi temporanei durante l'esecuzione dell'indicizzatore. Tuttavia, questi errori sono temporanei e devono essere risolti nelle esecuzioni successive dell'indicizzatore.
Per gestire questi errori in modo efficace, è consigliabile inserire l'indicizzatore in base a una pianificazione, ad esempio, per l'esecuzione ogni cinque minuti, in cui l'esecuzione successiva inizia cinque minuti dopo il completamento della prima esecuzione, rispettando il limite di runtime massimo per il servizio. Le esecuzioni pianificate regolarmente consentono di correggere gli errori temporanei o gli avvisi.
Se un errore persiste in più esecuzioni dell'indicizzatore, è probabile che non si tratti di un problema temporaneo. In questi casi, fare riferimento all'elenco seguente per le potenziali soluzioni.
Proprietà | Descrizione | Esempio |
---|---|---|
Chiave | ID del documento interessato dall'errore o dall'avviso. | Archiviazione di Azure esempio, in cui l'ID predefinito è il percorso di archiviazione dei metadati:https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf |
Nome | Operazione che causa l'errore o l'avviso. Viene generato dalla struttura seguente: [category] .[subcategory] .[resourceType] .[resourceName] |
DocumentExtraction.azureblob.myBlobContainerName Enrichment.WebApiSkill.mySkillName Projection.SearchIndex.OutputFieldMapping.myOutputFieldName Projection.SearchIndex.MergeOrUpload.myIndexName Projection.KnowledgeStore.Table.myTableName |
Message | Descrizione generale dell'errore o dell'avviso. | Could not execute skill because the Web Api request failed. |
Dettagli | Informazioni specifiche che potrebbero essere utili per diagnosticare il problema, ad esempio la risposta WebApi se l'esecuzione di una competenza personalizzata non è riuscita. | 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 | Collegamento alla documentazione pertinente con informazioni dettagliate per eseguire il debug e risolvere il problema. Questo collegamento spesso punta a una delle sezioni seguenti in questa pagina. | https://go.microsoft.com/fwlink/?linkid=2106475 |
L'indicizzatore non è riuscito a leggere il documento dall'origine dati. Ciò può verificarsi a causa di:
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
Tipi di campo incoerenti in documenti diversi | 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. |
Assicurarsi che il tipo di ogni campo sia lo stesso in documenti diversi. Ad esempio, se il campo 'startTime' del primo documento è un valore DateTime e nel secondo documento è una stringa, viene visualizzato questo errore. |
Errori del servizio sottostante dell'origine dati | Da Azure Cosmos DB: {"Errors":["Request rate is large"]} |
Controllare l'istanza di archiviazione per assicurarsi che sia integra. Potrebbe essere necessario modificare il ridimensionamento o il partizionamento. |
Problemi temporanei | 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 |
In alcuni casi si verificano problemi di connettività imprevisti. Provare a eseguire di nuovo il documento tramite l'indicizzatore in un secondo momento. |
L'indicizzatore con un'origine dati BLOB non è riuscito a estrarre il contenuto o i metadati dal documento, ad esempio un file PDF. Ciò può verificarsi a causa di:
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
Il BLOB supera il limite di dimensioni | Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. |
Errori di indicizzazione BLOB |
Il BLOB ha un tipo di contenuto non supportato | Document has unsupported content type 'image/png' |
Errori di indicizzazione BLOB |
Il BLOB è crittografato | Document could not be processed - it may be encrypted or password protected. |
È possibile ignorare il BLOB con le impostazioni del BLOB. |
Problemi temporanei | Error processing blob: The request was aborted: The request was canceled. Document timed out during processing. |
In alcuni casi si verificano problemi di connettività imprevisti. Provare a eseguire di nuovo il documento tramite l'indicizzatore in un secondo momento. |
L'indicizzatore legge il documento dall'origine dati, ma si è verificato un problema durante la conversione del contenuto del documento nello schema di mapping dei campi specificato. Ciò può verificarsi a causa di:
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
Chiave del documento mancante | Document key cannot be missing or empty |
Verificare che tutti i documenti abbiano chiavi di documento valide. La chiave del documento viene determinata impostando la proprietà 'key' come parte della definizione dell'indice. Gli indicizzatori generano questo errore quando la proprietà contrassegnata come 'chiave' non è stata trovata in un documento specifico. |
La chiave del documento non è valida | Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). |
Verificare che tutti i documenti abbiano chiavi di documento valide. Per altri dettagli, vedere Indicizzazione dell'archiviazione BLOB. Se si usa l'indicizzatore BLOB e la chiave del documento è il campo metadata_storage_path , assicurarsi che la definizione dell'indicizzatore abbia una funzione di mapping base64Encode con parameters uguale a null anziché il percorso in testo normale. |
La chiave del documento non è valida | Document key cannot be longer than 1024 characters |
Modificare la chiave del documento per soddisfare i requisiti di convalida. |
Impossibile applicare il mapping dei campi a un campo | Could not apply mapping function 'functionName' to field 'fieldName'. Array cannot be null. Parameter name: bytes |
Controllare i mapping dei campi definiti nell'indicizzatore e confrontarli con i dati del campo specificato del documento non riuscito. Potrebbe essere necessario modificare i mapping dei campi o i dati del documento. |
Impossibile leggere il valore del 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.) |
Questi errori sono in genere dovuti a problemi di connettività imprevisti con il servizio sottostante dell'origine dati. Provare a eseguire di nuovo il documento tramite l'indicizzatore in un secondo momento. |
Error: Could not map output field 'xyz' to search index due to deserialization problem while applying mapping function 'abc'
È possibile che il mapping di output non sia riuscito perché i dati di output sono in formato errato per la funzione di mapping in uso. Ad esempio, l'applicazione della funzione di mapping Base64Encode
ai dati binari genererebbe questo errore. Per risolvere il problema, eseguire nuovamente l'indicizzatore senza specificare la funzione di mapping o assicurarsi che la funzione di mapping sia compatibile con il tipo di dati del campo di output. Per informazioni dettagliate, vedere Mapping dei campi di output.
L'indicizzatore non è riuscito a eseguire una competenza nel set di competenze.
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
Problemi di connettività temporanei | Si è verificato un errore temporaneo. Riprovare. | In alcuni casi si verificano problemi di connettività imprevisti. Provare a eseguire di nuovo il documento tramite l'indicizzatore in un secondo momento. |
Potenziale bug del prodotto | Errore imprevisto. | Indica una classe sconosciuta di errore e può indicare un bug del prodotto. Inviare un ticket di supporto per ottenere assistenza. |
Si è verificato un errore durante l'esecuzione di una competenza | (Dalla competenza di merge) Uno o più valori di offset non sono validi e non è stato possibile analizzarli. Gli elementi sono stati inseriti alla fine del testo | Usare le informazioni nel messaggio di errore per risolvere il problema. Questo tipo di errore richiede un'azione da risolvere. |
L'esecuzione della competenza non è riuscita perché la chiamata all'API Web non è riuscita. In genere, questa classe di errore si verifica quando vengono usate competenze personalizzate, nel qual caso è necessario eseguire il debug del codice personalizzato per risolvere il problema. Se invece l'errore proviene da una competenza predefinita, fare riferimento al messaggio di errore per informazioni sulla risoluzione del problema.
Durante il debug di questo problema, assicurarsi di prestare attenzione a eventuali avvisi di input della competenza per questa competenza. L'endpoint dell'API Web potrebbe non riuscire perché l'indicizzatore passa l'input imprevisto.
L'esecuzione della competenza non è riuscita perché la chiamata all'API Web ha restituito una risposta non valida. In genere, questa classe di errore si verifica quando vengono usate competenze personalizzate, nel qual caso è necessario eseguire il debug del codice personalizzato per risolvere il problema. Se invece l'errore proviene da una competenza predefinita, inviare un ticket di supporto per ottenere assistenza.
Error: Type of value has a mismatch with column type. Couldn't store in 'xyz' column. Expected type is 'abc'
Se l'origine dati ha un campo con un tipo di dati diverso rispetto al campo di cui si sta tentando di eseguire il mapping nell'indice, è possibile che si verifichi questo errore. Controllare i tipi di dati del campo dell'origine dati e assicurarsi che siano mappati correttamente ai tipi di dati dell'indice.
Esistono due casi in cui è possibile che venga visualizzato questo messaggio di errore, ognuno dei quali deve essere trattato in modo diverso. Seguire le istruzioni riportate di seguito a seconda di quale competenza ha restituito questo errore.
Molte delle competenze cognitive predefinite, ad esempio il rilevamento della lingua, il riconoscimento delle entità o OCR, sono supportate da un endpoint dell'API dei servizi di intelligenza artificiale di Azure. In alcuni casi si verificano problemi temporanei con questi endpoint e si verifica un timeout di una richiesta. Per i problemi temporanei, non c'è alcun rimedio ad eccezione di attendere e riprovare. Come mitigazione, è consigliabile impostare l'indicizzatore su eseguire in base a una pianificazione. L'indicizzazione pianificata riprende da dove è stata interrotta. Supponendo che i problemi temporanei vengano risolti, l'indicizzazione e l'elaborazione delle competenze cognitive devono essere in grado di continuare all'esecuzione pianificata successiva.
Se si continua a visualizzare questo errore nello stesso documento per una competenza cognitiva predefinita, inviare un ticket di supporto per ottenere assistenza, perché non è previsto.
Se si verifica un errore di timeout con una competenza personalizzata, è possibile provare un paio di cose. Prima di tutto, esaminare la competenza personalizzata e assicurarsi che non si blocchi in un ciclo infinito e che restituisca un risultato in modo coerente. Dopo aver verificato che viene restituito un risultato, controllare la durata dell'esecuzione. Se non è stato impostato in modo esplicito un valore di timeout
nella definizione della competenza personalizzata, il timeout
predefinito è 30 secondi. Se 30 secondi non sono sufficienti per l'esecuzione della competenza, è possibile specificare un valore di timeout
superiore nella definizione della competenza personalizzata. Ecco un esempio di definizione di competenza personalizzata in cui il timeout è impostato su 90 secondi:
{
"@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"
}
]
}
Il valore massimo che è possibile impostare per il parametro timeout
è 230 secondi. Se la competenza personalizzata non è in grado di essere eseguita in modo coerente entro 230 secondi, è consigliabile ridurre batchSize
della competenza personalizzata in modo da avere meno documenti da elaborare all'interno di una singola esecuzione. Se è già stato impostato batchSize
su 1, è necessario riscrivere la competenza per poter essere eseguita in meno di 230 secondi oppure suddividerla in più competenze personalizzate in modo che il tempo di esecuzione per ogni singola competenza personalizzata sia un massimo di 230 secondi. Per altre informazioni, vedere la documentazione della competenza personalizzata.
Il documento è stato letto ed elaborato, ma l'indicizzatore non è riuscito ad aggiungerlo all'indice di ricerca. Ciò può verificarsi a causa di:
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
Un campo contiene un termine troppo grande | Un termine nel documento è superiore al limite di 32 KB | È possibile evitare questa restrizione assicurandosi che il campo non sia configurato come filtrabile, facetable o ordinabile. |
Documento troppo grande da indicizzare | Un documento è maggiore delle dimensioni massime della richiesta API | Come indicizzare set di dati di grandi dimensioni |
Il documento contiene troppi oggetti nell'insieme | Una raccolta nel documento supera il limite massimo di tutti gli insiemi complessi. 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. |
È consigliabile ridurre le dimensioni della raccolta complessa nel documento al di sotto del limite ed evitare un utilizzo elevato dello spazio di archiviazione. |
Problemi di connessione all'indice di destinazione (che persiste dopo i tentativi) perché il servizio è sottoposto ad altri carichi, ad esempio l'esecuzione di query o l'indicizzazione. | Impossibile stabilire la connessione per aggiornare l'indice. Il servizio di ricerca è sottoposto a un carico elevato. | Aumentare le prestazioni del servizio di ricerca |
Il servizio di ricerca viene sottoposto a patch per l'aggiornamento del servizio o si trova al centro di una riconfigurazione della topologia. | Impossibile stabilire la connessione per aggiornare l'indice. Il servizio di ricerca è attualmente inattivo/il servizio di ricerca è in fase di transizione. | Configurare il servizio con almeno tre repliche per la disponibilità del 99,9% per ogni documentazione del contratto di servizio |
Errore nella risorsa di calcolo/rete sottostante (raro) | Impossibile stabilire la connessione per aggiornare l'indice. Si è verificato un errore sconosciuto. | Configurare gli indicizzatori per l'esecuzione n base a una pianificazione per la ripresa da uno stato non riuscito. |
Una richiesta di indicizzazione effettuata all'indice di destinazione non è stata riconosciuta entro un periodo di timeout a causa di problemi di rete. | Impossibile stabilire una connessione all'indice di ricerca in modo tempestivo. | Configurare gli indicizzatori per l'esecuzione n base a una pianificazione per la ripresa da uno stato non riuscito. Provare anche a ridurre le dimensioni del batch dell'indicizzatore se questa condizione di errore persiste. |
Il documento è stato letto ed elaborato dall'indicizzatore, ma a causa di una mancata corrispondenza nella configurazione dei campi di indice e dei dati estratti ed elaborati dall'indicizzatore, non è stato possibile aggiungerlo all'indice di ricerca. Ciò può verificarsi a causa di:
Motivo | Dettagli/Esempio |
---|---|
Il tipo di dati di uno o più campi estratti dall'indicizzatore non è compatibile con il modello di dati del campo dell'indice di destinazione corrispondente. | 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)'. |
Impossibile estrarre un'entità JSON da un valore stringa. | 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.' |
Impossibile estrarre una raccolta di entità JSON da un valore stringa. | 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.' |
È stato individuato un tipo sconosciuto nel documento di origine. | Unknown type '_unknown_' cannot be indexed |
Nel documento di origine è stata usata una notazione non compatibile per i punti geografici. | WKT POINT string literals are not supported. Use GeoJson point literals instead |
In tutti questi casi, fare riferimento a tipi di dati supportati e mapping dei tipi di dati per gli indicizzatori per assicurarsi di compilare correttamente lo schema dell'indice e di aver configurato i mapping dei campi dell'indicizzatore appropriati. Il messaggio di errore include dettagli che consentono di rilevare l'origine della mancata corrispondenza.
Questo vale per le tabelle SQL e in genere si verifica quando la chiave è definita come chiave composita o quando la tabella ha definito un indice cluster univoco (come in un indice SQL, non un indice di Ricerca di Azure). Il motivo principale è che l'attributo chiave viene modificato in modo da essere una chiave primaria composita in un indice cluster univoco. In tal caso, assicurarsi che la tabella SQL non abbia un indice cluster univoco o che il campo chiave venga mappato a un campo che non abbia valori duplicati.
Questo errore si verifica quando l'indicizzatore non è in grado di completare l'elaborazione di un singolo documento dall'origine dati entro il tempo di esecuzione consentito. Il tempo di esecuzione massimo è più breve quando vengono usati set di competenze. Quando si verifica questo errore, se maxFailedItems è impostato su un valore diverso da 0, l'indicizzatore ignora il documento per le esecuzioni future in modo che l'indicizzazione possa progredire. Se non è possibile permettersi di ignorare qualsiasi documento o se viene visualizzato questo errore in modo coerente, è consigliabile suddividere i documenti in documenti più piccoli in modo che l'avanzamento parziale possa essere eseguito all'interno di una singola esecuzione dell'indicizzatore.
Questo errore si verifica quando l'indicizzatore tenta di proiettare i dati in un archivio conoscenze e si è verificato un errore durante il tentativo. Questo errore potrebbe essere coerente e risolvibile oppure potrebbe trattarsi di un errore temporaneo con il sink di output di proiezione che potrebbe essere necessario attendere, e riprovare per risolvere. Ecco un set di stati di errore noti e possibili soluzioni.
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
Impossibile aggiornare il BLOB 'blobUri' di proiezione nel contenitore 'containerName' |
Il contenitore specificato non esiste. | L'indicizzatore controlla se il contenitore specificato è stato creato in precedenza e lo creerà, se necessario, ma esegue questo controllo solo una volta per ogni esecuzione dell'indicizzatore. Questo errore indica che qualcosa ha eliminato il contenitore dopo questo passaggio. Per risolvere l'errore, provare: lasciare le informazioni sull'account di archiviazione da sole, attendere il completamento dell'indicizzatore e quindi eseguire nuovamente l'indicizzatore. |
Impossibile aggiornare il BLOB 'blobUri' di proiezione nel contenitore 'containerName' |
Impossibile scrivere dati nella connessione del trasporto: Una connessione esistente è stata chiusa forzatamente dall'host remoto. | Si prevede che si tratta di un errore temporaneo con Archiviazione di Azure e quindi deve essere risolto eseguendo di nuovo l'indicizzatore. Se si verifica questo errore in modo coerente, inviare un ticket di supporto in modo che possa essere esaminato ulteriormente. |
Impossibile aggiornare la riga 'projectionRow' nella tabella 'tableName' |
Il server è occupato. | Si prevede che si tratta di un errore temporaneo con Archiviazione di Azure e quindi deve essere risolto eseguendo di nuovo l'indicizzatore. Se si verifica questo errore in modo coerente, inviare un ticket di supporto in modo che possa essere esaminato ulteriormente. |
L'esecuzione delle competenze non è riuscita perché la chiamata ai servizi di intelligenza artificiale di Azure è stata limitata. In genere, questa classe di errore si verifica quando troppe competenze vengono eseguite in parallelo. Se si usa la libreria client Microsoft.Search.Documents per eseguire l'indicizzatore, è possibile usare SearchIndexingBufferedSender per ottenere un nuovo tentativo automatico nei passaggi non riusciti. In caso contrario, è possibile reimpostare ed eseguire di nuovo l'indicizzatore.
Un errore 'Expected IndexAction metadata' indica quando l'indicizzatore ha tentato di leggere il documento per identificare l'azione da eseguire, non ha trovato metadati corrispondenti nel documento. In genere, questo errore si verifica quando l'indicizzatore ha una cache di annotazioni aggiunta o rimossa senza reimpostare l'indicizzatore. Per risolvere questo problema, è necessario reimpostare ed eseguire di nuovo l'indicizzatore.
Un input per la competenza non è presente, ha il tipo errato o in caso contrario non è valido. Potrebbero essere visualizzate le informazioni seguenti:
Could not execute skill
Skill executed but may have unexpected results
Le competenze cognitive hanno input necessari e input facoltativi. Ad esempio, la competenza Estrazione frasi chiave ha due input text
, languageCode
necessari, e nessun input facoltativo. Gli input di competenza personalizzati sono tutti considerati input facoltativi.
Se mancano gli input necessari o se l'input non è il tipo corretto, la competenza viene ignorata e genera un avviso. Le competenze ignorate non generano output. Se le competenze downstream utilizzano gli output della competenza ignorata, possono generare altri avvisi.
Se manca un input facoltativo, la competenza viene comunque eseguita, ma potrebbe produrre output imprevisto a causa dell'input mancante.
In entrambi i casi, questo avviso è dovuto alla forma dei dati. Se, ad esempio, si dispone di un documento contenente informazioni sugli utenti con i campi firstName
, middleName
e lastName
, potrebbero essere presenti alcuni documenti che non dispongono di una voce per middleName
. Se si passa middleName
come input a una competenza nella pipeline, è previsto che l'input della competenza non sia presente in parte. È necessario valutare i dati e lo scenario per determinare se è necessaria o meno qualche azione in seguito a questo avviso.
Se si vuole specificare un valore predefinito per un input mancante, è possibile usare la competenza condizionale per generare un valore predefinito e quindi usare l'output della competenza condizionale come input della competenza.
{
"@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" } ]
}
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
L'input della competenza è il tipo errato | "L'input della competenza richiesto non era del tipo previsto String . Nome: text , Origine: /document/merged_content ". "L'input della competenza richiesto non era del formato previsto. Nome: text , Origine: /document/merged_content ". "Impossibile eseguire l'iterazione su non matrice /document/normalized_images/0/imageCelebrities/0/detail/celebrities ". "Impossibile selezionare 0 in una matrice /document/normalized_images/0/imageCelebrities/0/detail/celebrities " |
Alcune competenze prevedono input di tipi specifici, ad esempio la competenza Sentiment prevede che text sia una stringa. Se l'input specifica un valore non di stringa, la competenza non viene eseguita e non genera output. Verificare che il set di dati abbia valori di input uniformi nel tipo o usare una competenza dell'API Web personalizzata per pre-elaborare l'input. Se si sta eseguendo l'iterazione della competenza su una matrice, controllare che il contesto della competenza e l'input abbiano * nelle posizioni corrette. In genere, sia il contesto che l'origine di input devono terminare con * per le matrici. |
L'input della competenza non è presente | 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 questo avviso si verifica per tutti i documenti, potrebbe essere presente un errore di digitazione nei percorsi di input. Controllare la combinazione di maiuscole e minuscole del nome della proprietà. Verificare la presenza di un elemento * aggiuntivo o mancante nel percorso. Verificare che i documenti dell'origine dati forniscano gli input necessari. |
L'input del codice della lingua della competenza non è valido | L'input della competenza languageCode ha i codici di lingua X,Y,Z seguenti, almeno uno dei quali non è valido. |
Vedere altri dettagli di seguito. |
Warning: Skill input 'languageCode' has the following language codes 'X,Y,Z', at least one of which is invalid.
Uno o più valori passati nell'input languageCode
facoltativo di una competenza downstream non sono supportati. Ciò può verificarsi se si passa l'output di LanguageDetectionSkill alle competenze successive e l'output è costituito da più lingue di quelle supportate in tali competenze downstream.
Si noti che è anche possibile ottenere un avviso simile a questo se un input countryHint
non valido viene passato a LanguageDetectionSkill. In tal caso, verificare che il campo usato dall'origine dati per tale input contenga codici paese ISO 3166-1 alpha-2 validi. Se alcuni sono validi e alcuni non sono validi, continuare con le indicazioni seguenti, ma sostituire languageCode
con countryHint
e defaultLanguageCode
con defaultCountryHint
per corrispondere al caso d'uso.
Se si sa che il set di dati è tutto in una sola lingua, è necessario rimuovere LanguageDetectionSkill e l'input della competenza languageCode
e usare il parametro di competenza defaultLanguageCode
per tale competenza, presupponendo che la lingua sia supportata per tale competenza.
Se si sa che il set di dati contiene più lingue e quindi è necessario il LanguageDetectionSkill e l’input languageCode
, è consigliabile aggiungere un ConditionalSkill per filtrare il testo con le lingue non supportate prima di passare il testo alla competenza downstream. Di seguito è riportato un esempio di ciò che potrebbe essere simile al seguente per 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" } ]
}
Ecco alcuni riferimenti per le lingue attualmente supportate per ognuna delle competenze che possono generare questo messaggio di errore:
- Lingue supportate da EntityRecognitionSkill
- Lingue supportate da EntityLinkingSkill
- Lingue supportate da KeyPhraseExtractionSkill
- Lingue supportate da LanguageDetectionSkill
- Lingue supportate da PIIDetectionSkill
- Lingue supportate da SentimentSkill
- Lingue supportate da Translator
- Lingue supportate da SplitSkill per il testo:
da, de, en, es, fi, fr, it, ko, pt
Le competenze cognitive limitano la lunghezza del testo che è possibile analizzare contemporaneamente. Se l'input di testo supera il limite, il testo viene troncato prima che venga arricchito. La competenza viene eseguita, ma non su tutti i dati.
Nell'esempio LanguageDetectionSkill
seguente, il campo di input 'text'
potrebbe attivare questo avviso se l'input supera il limite di caratteri. I limiti di input sono disponibili nella documentazione di riferimento sulle competenze.
{
"@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
"inputs": [
{
"name": "text",
"source": "/document/text"
}
],
"outputs": [...]
}
Se si vuole assicurarsi che tutto il testo venga analizzato, è consigliabile usare la competenza Dividi.
L'indicizzatore ha eseguito la competenza nel set di competenze, ma la risposta dalla richiesta API Web indica che sono presenti avvisi. Esaminare gli avvisi per comprendere l'impatto dei dati e se è necessaria un'ulteriore azione.
Questo avviso si verifica solo per le origini dati di Azure Cosmos DB.
L'avanzamento incrementale durante l'indicizzazione assicura che, in caso di interruzione dell'esecuzione dell'indicizzatore a causa di errori temporanei o del limite del tempo di esecuzione, l'indicizzatore possa riprendere dal punto in cui è stato interrotto all'esecuzione successiva, invece di dovere ripetere dall'inizio l'indicizzazione dell'intera raccolta. Questo approccio risulta particolarmente importante in caso di indicizzazione di raccolte di grandi dimensioni.
La possibilità di riprendere un processo di indicizzazione non completata viene predicata in base alla presenza di documenti ordinati in base alla colonna _ts
. L'indicizzatore usa il timestamp per determinare il documento da selezionare successivamente. Se la colonna _ts
è mancante o se l'indicizzatore non è in grado di determinare se una query personalizzata è ordinata in base ad essa, l'indicizzatore inizia dall'inizio e verrà visualizzato questo avviso.
È possibile eseguire l'override di questo comportamento, abilitando lo stato di avanzamento incrementale ed eliminando questo avviso usando la proprietà di configurazione assumeOrderByHighWaterMarkColumn
.
Per altre informazioni, vedere avanzamento incrementale e query personalizzate.
Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.
Il servizio archiviazione tabelle presenta dei limiti sulla quantità di proprietà delle entità di grandi dimensioni. Le stringhe possono avere almeno 32.000 caratteri. Se viene proiettata una riga con una proprietà stringa superiore a 32.000 caratteri, vengono mantenuti solo i primi 32.000 caratteri. Per risolvere questo problema, evitare di proiettare righe con proprietà stringa più lunghe di 32.000 caratteri.
Gli indicizzatori limitano la quantità di testo che può essere estratto da un documento. Questo limite dipende dal piano tariffario: 32.000 caratteri per il livello gratuito, 64.000 per Basic, 4 milioni per Standard, 8 milioni per Standard S2 e 16 milioni per Standard S3. Il testo troncato non verrà indicizzato. Per evitare questo avviso, provare a suddividere i documenti con grandi quantità di testo in più documenti più piccoli.
Per altre informazioni, vedere limiti dell'indicizzatore.
I mapping dei campi di output che fanno riferimento a dati non esistenti/null generano avvisi per ogni documento e generano un campo indice vuoto. Per risolvere questo problema, controllare attentamente i percorsi di origine del mapping dei campi di output per individuare possibili errori di digitazione o impostare un valore predefinito usando la competenza Condizionale. Per informazioni dettagliate, vedere Mapping dei campi di output.
Motivo | Dettagli/Esempio | Risoluzione |
---|---|---|
Non è possibile eseguire l'iterazione su non matrice | "Impossibile eseguire l'iterazione su /document/normalized_images/0/imageCelebrities/0/detail/celebrities non matrice". |
Questo errore si verifica quando l'output non è una matrice. Se si ritiene che l'output sia una matrice, controllare il percorso del campo di origine dell'output indicato per individuare gli errori. Ad esempio, potrebbe essere presente un valore * mancante o aggiuntivo nel nome del campo di origine. È anche possibile che l'input di questa competenza sia Null, generando una matrice vuota. Trovare dettagli simili nella sezione L’input della competenza non era valido. |
Impossibile selezionare 0 in una matrice |
"Non è possibile selezionare 0 in una matrice /document/pages ". |
Questo problema può verificarsi se l'output delle competenze non produce una matrice e il nome del campo di origine di output ha un indice di matrice o * nel relativo percorso. Controllare i percorsi specificati nei nomi dei campi di origine di output e il valore del campo per il nome del campo indicato. Trovare dettagli simili nella sezione L’input della competenza non era valido. |
I criteri di rilevamento delle modifiche dei dati hanno dei requisiti specifici per le colonne usate per rilevare le modifiche. Uno di questi requisiti è che questa colonna viene aggiornata ogni volta che l'elemento di origine viene modificato. Un altro requisito è che il nuovo valore per questa colonna è maggiore del valore precedente. Le colonne chiave non soddisfano questo requisito perché non cambiano a ogni aggiornamento. Per risolvere questo problema, selezionare una colonna diversa per i criteri di rilevamento delle modifiche.
Le modalità di analisi dell'indicizzatore devono sapere come viene codificato il testo prima di analizzarlo. I due modi più comuni per codificare il testo sono UTF-16 e UTF-8. UTF-8 è una codifica a lunghezza variabile in cui ogni carattere è compreso tra 1 byte e 4 byte di lunghezza. UTF-16 è una codifica a lunghezza fissa in cui ogni carattere è lungo 2 byte. UTF-16 ha due varianti diverse, big endian
e little endian
. La codifica del testo è determinata da un byte order mark
, una serie di byte prima del testo.
Codifica | Byte order mark |
---|---|
UTF-16 Big Endian | 0xFE 0xFF |
UTF-16 Little Endian | 0xFF 0xFE |
UTF-8 | 0xEF 0xBB 0xBF |
Se non è presente alcun segno di ordine dei byte, si presuppone che il testo venga codificato come UTF-8.
Per ovviare a questo avviso, determinare qual è la codifica del testo per questo BLOB e aggiungere il contrassegno di ordine dei byte appropriato.
Le raccolte con criteri di indicizzazione differita non possono essere sottoposte a query in modo coerente, causando la mancanza di dati dell'indicizzatore. Per ovviare a questo avviso, modificare i criteri di indicizzazione in Coerente.
Warning: The document contains very long words (longer than 64 characters). These words may result in truncated and/or unreliable model predictions.
Questo avviso viene passato dal servizio di linguaggio dei servizi di intelligenza artificiale di Azure. In alcuni casi, è possibile ignorare questo avviso, ad esempio se la stringa lunga è solo un URL lungo. Tenere presente che quando una parola è più lunga di 64 caratteri, viene troncata a 64 caratteri che possono influire sulle stime del modello.
Gli indicizzatori hanno limiti di dimensioni del documento. Assicurarsi che i documenti nell'origine dati siano inferiori al limite di dimensioni supportate, come documentato per il livello di servizio.