Beheben von häufigen Fehler und Warnungen bei Suchindexern in Azure AI Search
Dieser Artikel enthält Informationen und Lösungen für häufige Fehler und Warnungen, die bei der Indizierung und KI-Anreicherung in Azure AI Search auftreten können.
Die Indizierung wird angehalten, wenn die Fehleranzahl 'maxFailedItems' überschreitet.
Wenn Sie möchten, dass Indexer diese Fehler ignorieren (und „fehlerhafte Dokumente“ überspringen), sollten Sie maxFailedItems
und maxFailedItemsPerBatch
wie hier beschrieben aktualisieren.
Hinweis
Jedes fehlerhafte Dokumente mit dem dazugehörigen Dokumentschlüssel (falls verfügbar) wird im Status der Indexer-Ausführung als Fehler angezeigt. Sie können die Index-API verwenden, um die Dokumente zu einem späteren Zeitpunkt manuell hochzuladen, wenn Sie festgelegt haben, dass der Indexer Fehler toleriert.
Anhand der Fehlerinformationen in diesem Artikel können Sie Fehler beheben, damit die Indizierung fortgesetzt werden kann.
Die Indizierung wird durch Warnungen nicht beendet, aber Warnungen weisen auf Bedingungen hin, die zu unerwarteten Ergebnissen führen können. Ob Sie Maßnahmen ergreifen oder nicht, hängt von den Daten und Ihrem Szenario ab.
Wo finden Sie bestimmte Indexerfehler?
Führen Sie die folgenden Schritte aus, um einen Indexerstatus zu überprüfen und Fehler im Azure-Portal zu identifizieren:
Melden Sie sich beim Azure-Portal an, und finden Sie Ihren Suchdienst.
Erweitern Sie auf der linken Seite die Suchverwaltungsindexer>, und wählen Sie einen Indexer aus.
Wählen Sie unter "Ausführungsverlauf" den Status aus. Alle Status, einschließlich Erfolg, weisen Details zur Ausführung auf.
Wenn ein Fehler auftritt, zeigen Sie mit der Maus auf die Fehlermeldung. Auf der rechten Seite des Bildschirms wird ein Bereich mit detaillierten Informationen zum Fehler angezeigt.
Vorübergehende Fehler
Aus verschiedenen Gründen, z. B. vorübergehende Unterbrechungen der Netzwerkkommunikation, Timeouts aus langen Prozessen oder bestimmten Dokumentnuancen, ist es üblich, während der Indizierung vorübergehende Fehler oder Warnungen zu erkennen. Diese Fehler sind jedoch temporär und sollten in nachfolgenden Indizierungsläufen behoben werden.
Um diese Fehler effektiv zu verwalten, empfehlen wir, den Indexer beispielsweise alle fünf Minuten auszuführen, wobei die nächste Ausführung fünf Minuten nach Abschluss der ersten Ausführung beginnt und dem maximalen Laufzeitlimit für Ihren Dienst entspricht. Regelmäßig geplante Ausführungen helfen bei der Behebung vorübergehender Fehler oder Warnungen.
Wenn ein Fehler über mehrere Indexerausführungen weiterhin besteht, ist es wahrscheinlich kein vorübergehendes Problem. In solchen Fällen finden Sie in der nachstehenden Liste mögliche Lösungen.
Fehlereigenschaften
Eigenschaft | BESCHREIBUNG | Beispiel |
---|---|---|
Schlüssel | Die ID des Dokuments, das von dem Fehler oder der Warnung betroffen ist. | Azure Storage-Beispiel, wobei die Standard-ID der Metadatenspeicherpfad ist: https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf |
Name | Der Vorgang, der den Fehler oder die Warnung verursacht. Er wird durch die folgende Struktur generiert: [category] .[subcategory] .[resourceType] .[resourceName] |
DocumentExtraction.azureblob.myBlobContainerName Enrichment.WebApiSkill.mySkillName Projection.SearchIndex.OutputFieldMapping.myOutputFieldName Projection.SearchIndex.MergeOrUpload.myIndexName Projection.KnowledgeStore.Table.myTableName |
`Message` | Eine allgemeine Beschreibung des Fehlers oder der Warnung. | Could not execute skill because the Web Api request failed. |
Details | Spezifische Informationen, die beim Diagnostizieren des Problems hilfreich sein können, z. B. die WebApi-Antwort, wenn die Ausführung eines benutzerdefinierten Skills fehlgeschlagen ist. | 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 | Ein Link zur relevanten Dokumentation mit ausführlichen Informationen zum Debuggen und Beheben des Problems. Dieser Link verweist häufig auf einen der folgenden Abschnitte auf dieser Seite. | https://go.microsoft.com/fwlink/?linkid=2106475 |
Error: Could not read document
Der Indexer konnte das Dokument nicht aus der Datenquelle lesen. Möglich sind folgende Ursachen:
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Inkonsistente Feldtypen in verschiedenen Dokumenten | 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. |
Stellen Sie sicher, dass der Typ aller Felds in verschiedenen Dokumenten identisch ist. Wenn das 'startTime' -Feld des ersten Dokuments z.B. den Datentyp DateTime aufweist und im zweiten Dokument eine Zeichenfolge ist, wird dieser Fehler angezeigt. |
Fehler aus dem zugrunde liegenden Dienst der Datenquelle | Azure Cosmos DB: {"Errors":["Request rate is large"]} |
Überprüfen Sie die Speicherinstanz, um sicherzustellen, dass Sie fehlerfrei ist. Möglicherweise müssen Sie Ihre Skalierung oder Partitionierung anpassen. |
Vorübergehende Probleme | 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 |
Gelegentlich treten unerwartete Konnektivitätsprobleme auf. Versuchen Sie später erneut, das Dokument über den Indexer laufen zu lassen. |
Error: Could not extract content or metadata from your document
Der Indexer mit einer Blob-Datenquelle konnte die Inhalte oder Metadaten nicht aus dem Dokument extrahieren (beispielsweise aus einer PDF-Datei). Möglich sind folgende Ursachen:
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Blob überschreitet das Größenlimit | Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. |
Blob-Indizierungsfehler |
Blob weist nicht unterstützten Inhaltstyp auf | Document has unsupported content type 'image/png' |
Blob-Indizierungsfehler |
Blob ist verschlüsselt | Document could not be processed - it may be encrypted or password protected. |
Sie können das Blob mit Blob-Einstellungen überspringen. |
Vorübergehende Probleme | Error processing blob: The request was aborted: The request was canceled. Document timed out during processing. |
Gelegentlich treten unerwartete Konnektivitätsprobleme auf. Versuchen Sie später erneut, das Dokument über den Indexer laufen zu lassen. |
Error: Could not parse document
Der Indexer hat das Dokument aus der Datenquelle gelesen, aber es gab ein Problem beim Konvertieren des Dokumentinhalts in das angegebene Feldzuordnungsschema. Möglich sind folgende Ursachen:
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Dokumentschlüssel fehlt | Document key cannot be missing or empty |
Stellen Sie sicher, dass alle Dokumente über gültige Dokumentschlüssel verfügen. Der Dokumentschlüssel wird durch Festlegen der Eigenschaft „key“ als Teil der Indexdefinition bestimmt. Indexer geben diesen Fehler aus, wenn die als „key“ gekennzeichnete Eigenschaft in einem bestimmten Dokument nicht gefunden werden kann. |
Dokumentschlüssel ist ungültig | Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). |
Stellen Sie sicher, dass alle Dokumente über gültige Dokumentschlüssel verfügen. Weitere Informationen finden Sie unter Indizieren von Dokumenten in Azure Blob Storage mit Azure Search. Wenn Sie den Blobindexer verwenden und ihr Dokumentschlüssel das Feld metadata_storage_path ist, stellen Sie sicher, dass die Indexerdefinition eine Base64Encode-Zuordnungsfunktion mit parameters gleich null verfügt (anstelle des Pfads als Nur-Text). |
Dokumentschlüssel ist ungültig | Document key cannot be longer than 1024 characters |
Ändern Sie den Dokumentschlüssel so, dass er die Überprüfungsanforderungen erfüllt. |
Feldzuordnung konnte nicht auf ein Feld angewendet werden | Could not apply mapping function 'functionName' to field 'fieldName'. Array cannot be null. Parameter name: bytes |
Überprüfen Sie die Feldzuordnungen, die im Indexer definiert sind, und vergleichen Sie sie mit den Daten des angegebenen Felds des fehlerhaften Dokuments. Es kann erforderlich sein, die Feldzuordnungen oder die Dokumentdaten zu ändern. |
Feldwert konnte nicht gelesen werden | 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.) |
Diese Fehler sind in der Regel auf unerwartete Konnektivitätsprobleme beim zugrunde liegenden Dienst der Datenquelle zurückzuführen. Versuchen Sie später erneut, das Dokument über den Indexer laufen zu lassen. |
Error: Could not map output field 'xyz' to search index due to deserialization problem while applying mapping function 'abc'
Bei der Ausgabezuordnung ist möglicherweise ein Fehler aufgetreten, weil die Ausgabedaten das falsche Format für die von Ihnen verwendete Zuordnungsfunktion haben. Wenn Sie z. B. die Base64Encode
-Zuordnungsfunktion auf binäre Daten anwenden, wird dieser Fehler generiert. Um das Problem zu beheben, führen Sie den Indexer erneut aus, ohne die Zuordnungsfunktion anzugeben, oder stellen Sie sicher, dass die Zuordnungsfunktion mit dem Datentyp des Ausgabefelds kompatibel ist. Weitere Informationen finden Sie unter Ausgabefeldzuordnung.
Error: Could not execute skill
Der Indexer konnte einen Skill im Skillset nicht ausführen.
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Vorübergehende Konnektivitätsprobleme | Ein vorübergehender Fehler ist aufgetreten. Versuchen Sie es später noch einmal. | Gelegentlich treten unerwartete Konnektivitätsprobleme auf. Versuchen Sie später erneut, das Dokument über den Indexer laufen zu lassen. |
Potenzieller Produktfehler | Ein unerwarteter Fehler ist aufgetreten. | Dies weist auf eine unbekannte Fehlerklasse und möglicherweise einen Produktfehler hin. Erstellen Sie ein Supportticket, um Hilfe zu erhalten. |
Fehler bei der Ausführung eines Skills | (Aus „Skill für Zusammenführung“:) Mindestens ein Offsetwert war ungültig und konnte nicht analysiert werden. Am Ende des Texts wurden Elemente eingefügt. | Beheben Sie das Problem anhand der Informationen in der Fehlermeldung. Für die Behebung dieser Art von Fehler sind Maßnahmen erforderlich. |
Error: Could not execute skill because the Web API request failed
Bei der Ausführung eines Skills ist aufgrund eines Fehlers beim Aufruf der Web-API ein Fehler aufgetreten. Zu dieser Fehlerklasse kommt es normalerweise, wenn benutzerdefinierte Skills verwendet werden. In diesem Fall müssen Sie Ihren benutzerdefinierten Code debuggen, um das Problem zu beheben. Wenn der Fehler stattdessen einen integrierten Skill betrifft, finden Sie in der Fehlermeldung Hilfe zum Beheben des Problems.
Achten Sie beim Debuggen dieses Problems auf alle Qualifikationseingaben-Warnungen für diese Qualifikation. Bei Ihrem Web-API-Endpunkt kann ein Fehler auftreten, weil ihm vom Indexer unerwartete Eingaben übergeben werden.
Error: Could not execute skill because Web API skill response is invalid
Bei der Ausführung eines Skills ist ein Fehler aufgetreten, da beim Aufruf der Web-API eine ungültige Antwort zurückgegeben wurde. Zu dieser Fehlerklasse kommt es normalerweise, wenn benutzerdefinierte Skills verwendet werden. In diesem Fall müssen Sie Ihren benutzerdefinierten Code debuggen, um das Problem zu beheben. Wenn der Fehler stattdessen einen integrierten Skill betrifft, erstellen Sie ein Supportticket, um Hilfe zu erhalten.
Error: Type of value has a mismatch with column type. Couldn't store in 'xyz' column. Expected type is 'abc'
Wenn Ihre Datenquelle ein Feld mit einem anderen Datentyp enthält als das Feld, das Sie in Ihrem Index zuzuordnen versuchen, tritt dieser Fehler möglicherweise auf. Überprüfen Sie die Datentypen der Quelldatenfelder, und stellen Sie sicher, dass sie Ihren Indexdatentypen ordnungsgemäß zugeordnet wurden.
Error: Skill did not execute within the time limit
Es gibt zwei Fälle, in denen möglicherweise diese Fehlermeldung angezeigt wird, die jeweils unterschiedlich behandelt werden sollten. Befolgen Sie die nachfolgenden Anweisungen, je nachdem, welcher Skill diesen Fehler zurückgegeben hat.
Integrierte Fähigkeiten für Azure AI Services
Viele der integrierten kognitiven Qualifikationen, wie z.B. Spracherkennung, Entitätserkennung oder OCR, werden von einem Azure AI Services API-Endpunkt unterstützt. Manchmal treten vorübergehende Probleme mit diesen Endpunkten auf, und eine Anforderung führt zu einem Timeout. Bei vorübergehenden Problemen gibt es keine Abhilfe, außer zu warten und es erneut versuchen. Zur Abhilfe können Sie überlegen, Ihren Indexer auf Gemäß einem Zeitplan ausführen festzulegen. Die geplante Indizierung setzt an der Stelle an, an der sie unterbrochen wurde. Wenn die vorübergehenden Probleme gelöst sind, sollten die Indizierung und die Verarbeitung der kognitiven Qualifikationen bei der nächsten geplanten Ausführung fortgesetzt werden können.
Wenn dieser Fehler für einen integrierten kognitiven Skill in demselben Dokument weiterhin angezeigt wird, reichen Sie ein Supportticket ein, um Unterstützung zu erhalten, denn ein solches Verhalten wird nicht erwartet.
Benutzerdefinierte Qualifikationen
Wenn ein Timeoutfehler bei einem benutzerdefinierten Skill auftritt, können Sie verschiedene Lösungen ausprobieren. Überprüfen Sie zuerst Ihren benutzerdefinierten Skill, und vergewissern Sie sich, dass er nicht in einer Endlosschleife hängen geblieben ist und dass er durchgängig ein Ergebnis zurückgibt. Nachdem Sie bestätigt haben, dass ein Ergebnis zurückgegeben wird, überprüfen Sie die Dauer der Ausführung. Wenn Sie in der Definition Ihrer benutzerdefinierten Qualifikation nicht explizit einen timeout
-Wert festgelegt haben, beträgt der Standardwert für timeout
30 Sekunden. Wenn 30 Sekunden für die Ausführung Ihres benutzerdefinierten Skills nicht ausreichen, können Sie in dessen Definition einen höheren timeout
-Wert angeben. Hier ist ein Beispiel für die Definition eines benutzerdefinierten Skills, bei dem das Timeout auf 90 Sekunden festgelegt wurde:
{
"@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"
}
]
}
Der maximale Wert, den Sie für den timeout
-Parameter festlegen können, beträgt 230 Sekunden. Wenn Ihre benutzerdefinierte Qualifikation nicht innerhalb von 230 Sekunden konsistent ausgeführt werden kann, sollten Sie ggf. die batchSize
Ihrer benutzerdefinierten Qualifikation verringern, sodass weniger Dokumente innerhalb einer einzelnen Ausführung verarbeitet werden. Wenn Sie Ihren Wert für batchSize
bereits auf „1“ festgelegt haben, müssen Sie den Skill erneut generieren, damit er in weniger als 230 Sekunden ausgeführt werden kann, oder Sie müssen ihn in mehrere benutzerdefinierte Skills aufteilen, damit die Ausführungszeit für jeden einzelnen benutzerdefinierten Skill maximal 230 Sekunden beträgt. Weitere Informationen finden Sie in der Dokumentation zu benutzerdefinierten Qualifikationen.
Error: Could not 'MergeOrUpload' | 'Delete' document to the search index
Das Dokument wurde gelesen und verarbeitet, aber der Indexer konnte es nicht zum Suchindex hinzufügen. Möglich sind folgende Ursachen:
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Ein Feld enthält einen Begriff, der zu groß ist. | Ein Begriff in Ihrem Dokument ist größer als der Grenzwert von 32 KB | Sie können diese Einschränkung vermeiden, indem Sie sicherstellen, dass das Feld nicht als filterbar, facettierbar oder sortierbar konfiguriert wird. |
Das Dokument ist zu groß für die Indizierung. | Ein Dokument ist größer als die maximale API-Anforderungsgröße. | Indizieren großer Datasets |
Das Dokument enthält zu viele Objekte in der Sammlung. | Bei einer Sammlung in Ihrem Dokument wurde die maximale Anzahl der Elemente in allen komplexen Sammlungen pro Dokument überschritten. 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. |
Wir empfehlen, die komplexe Sammlung im Dokument auf einen Wert unter dem Grenzwert zu verkleinern und eine hohe Speicherauslastung zu vermeiden. |
Probleme beim Herstellen einer Verbindung mit dem Zielindex (die nach Wiederholungsversuchen weiterhin bestehen), da der Dienst durch eine andere Aufgabe ausgelastet ist, z.B. eine Abfrage oder Indizierung. | Die Verbindung zum Hochladen des Indexes konnte nicht hergestellt werden. Der Suchdienst ist stark ausgelastet. | Hochskalieren des Suchdiensts |
Der Suchdienst wird für das Dienstupdate gepatcht oder befindet sich mitten in einer Neukonfiguration der Topologie. | Die Verbindung zum Hochladen des Indexes konnte nicht hergestellt werden. Der Suchdienst ist derzeit nicht verfügbar / Der Suchdienst befindet sich im Übergang. | Konfigurieren Sie den Dienst mit mindestens drei Replikaten für eine Verfügbarkeit von 99,9 Prozent gemäß SLA-Dokumentation. |
Fehler in der zugrunde liegenden Compute-/Netzwerkressource (selten) | Die Verbindung zum Hochladen des Indexes konnte nicht hergestellt werden. Ein unbekannter Fehler ist aufgetreten. | Konfigurieren Sie Indexer für die Ausführung nach Zeitplan, um den Betrieb nach einem Fehler wieder aufzunehmen. |
Eine Indizierungsanforderung an den Zielindex wurde aufgrund von Netzwerkproblemen nicht innerhalb eines Zeitlimits bestätigt. | Die Verbindung mit dem Suchindex konnte nicht rechtzeitig hergestellt werden. | Konfigurieren Sie Indexer für die Ausführung nach Zeitplan, um den Betrieb nach einem Fehler wieder aufzunehmen. Versuchen Sie außerdem, die Batchgröße des Indexers zu verringern, wenn dieser Fehler weiterhin auftritt. |
Error: Could not index document because some of the document's data was not valid
Das Dokument wurde vom Indexer gelesen und verarbeitet, konnte jedoch aufgrund eines Konflikts zwischen der Konfiguration der Indexfelder und den vom Indexer extrahierten und verarbeiteten Daten nicht zum Suchindex hinzugefügt werden. Möglich sind folgende Ursachen:
`Reason` | Details/Beispiel |
---|---|
Der Datentyp mindestens eines der vom Indexer extrahierten Felder ist nicht kompatibel mit dem Datenmodell des entsprechenden Zielindexfelds. | 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)'. |
Fehler beim Extrahieren einer JSON-Entität aus einem Zeichenfolgenwert. | 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.' |
Fehler beim Extrahieren einer Sammlung von JSON-Entitäten aus einem Zeichenfolgenwert. | 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.' |
Im Quelldokument wurde ein unbekannter Typ gefunden. | Unknown type '_unknown_' cannot be indexed |
Im Quelldokument wurde eine nicht kompatible Notation für Geografiepunkte verwendet. | WKT POINT string literals are not supported. Use GeoJson point literals instead |
Beachten Sie in allen diesen Fällen die Informationen unter Unterstützte Datentypen und Datentypzuordnung für Indexer, um sicherzustellen, dass Sie das Indexschema ordnungsgemäß erstellen und geeignete Indexerfeldzuordnungen eingerichtet haben. Die Fehlermeldung enthält Details, anhand derer die Quelle des Konflikts ermittelt werden kann.
Error: Integrated change tracking policy cannot be used because table has a composite primary key
Dies betrifft SQL-Tabellen und geschieht in der Regel, wenn der Schlüssel als zusammengesetzter Schlüssel definiert ist oder wenn in der Tabelle ein eindeutiger gruppierter Index definiert ist (d. h. wie in einem SQL-Index, nicht in einem Azure Search-Index). Der Hauptgrund ist, dass das Schlüsselattribut in einen zusammengesetzten Primärschlüssel in einem eindeutigen gruppierten Index geändert wird. Sorgen Sie in diesem Fall dafür, dass die SQL-Tabelle keinen eindeutigen gruppierten Index enthält oder dass Sie das Schlüsselfeld einem Feld zuordnen, das garantiert keine doppelten Werte enthält.
Error: Could not process document within indexer max run time
Dieser Fehler tritt auf, wenn der Indexer die Verarbeitung eines einzelnen Dokuments aus der Datenquelle nicht innerhalb der zulässigen Ausführungszeit beenden kann. Die maximale Ausführungszeit ist kürzer, wenn Skillsets verwendet werden. Wenn dieser Fehler auftritt und maxFailedItems auf einen anderen Wert als 0 festgelegt ist, umgeht der Indexer das Dokument bei zukünftigen Ausführungen, sodass die Indizierung fortgesetzt werden kann. Wenn kein Dokument übersprungen werden darf oder wenn dieser Fehler durchgängig auftritt, sollten Sie Dokumente in kleinere Dokumente aufteilen, damit ein teilweiser Fortschritt innerhalb einer einzelnen Indexerausführung erzielt werden kann.
Error: Could not project document
Dieser Fehler tritt auf, wenn der Indexer versucht hat, Daten in einen Wissensspeicher zu projizieren und bei diesem Versuch ein Fehler aufgetreten ist. Dieser Fehler kann konsistent und behebbar oder ein vorübergehender Fehler der Projektionsausgabesenke sein. Um diesen zu beheben, müssen Sie möglicherweise warten und den Vorgang wiederholen. Im Folgenden finden Sie eine Reihe von bekannten Fehlerzuständen und möglichen Lösungen.
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Projektions-BLOB 'blobUri' konnte im Container nicht aktualisiert werden. 'containerName' |
Der angegebene Container ist nicht vorhanden. | Der Indexer überprüft, ob der angegebene Container bereits erstellt wurde, und erstellt ihn bei Bedarf. Diese Überprüfung erfolgt jedoch nur einmal pro Indexer-Ausführung. Dieser Fehler bedeutet, dass der Container nach diesem Schritt gelöscht wurde. Um diesen Fehler zu beheben, versuchen Sie Folgendes: Nehmen Sie keine Änderungen an Ihren Speicherkontoinformationen vor, warten Sie, bis der Indexer beendet wurde, und führen Sie den Indexer dann erneut aus. |
Projektions-BLOB 'blobUri' konnte im Container nicht aktualisiert werden. 'containerName' |
In die Übertragungsverbindung können keine Daten geschrieben werden: Das Schließen einer vorhandenen Verbindung wurde vom Remotehost erzwungen. | Dies ist voraussichtlich ein vorübergehender Fehler bei Azure Storage, der daher durch erneutes Ausführen des Indexers behoben werden sollte. Wenn dieser Fehler konsistent auftritt, übermitteln Sie ein Supportticket, damit er weiter untersucht werden kann. |
Zeile 'projectionRow' in Tabelle konnte nicht aktualisiert werden 'tableName' |
Der Server ist ausgelastet. | Dies ist voraussichtlich ein vorübergehender Fehler bei Azure Storage, der daher durch erneutes Ausführen des Indexers behoben werden sollte. Wenn dieser Fehler konsistent auftritt, übermitteln Sie ein Supportticket, damit er weiter untersucht werden kann. |
Error: The cognitive service for skill '<skill-name>' has been throttled
Fehler bei der Ausführung von Skills, weil der Aufruf von Azure AI Services gedrosselt wurde. Diese Fehlerklasse tritt normalerweise auf, wenn zu viele Skills parallel ausgeführt werden. Wenn Sie die „Microsoft.Search.Documents“-Clientbibliothek zum Ausführen des Indexers verwenden, können Sie mithilfe von SearchIndexingBufferedSender eine automatische Wiederholung bei fehlgeschlagenen Schritten erhalten. Andernfalls können Sie den Indexer zurücksetzen und erneut ausführen.
Error: Expected IndexAction metadata
Ein Fehler "IndexAction-Metadaten erwartet" bedeutet, dass der Indexer versucht hat, das Dokument zu lesen, um zu identifizieren, welche Aktion ausgeführt werden soll, keine entsprechenden Metadaten im Dokument gefunden hat. Dieser Fehler tritt in der Regel auf, wenn für dem Indexer ein Anmerkungscache hinzugefügt oder entfernt wurde, ohne den Indexer zurückzusetzen. Um dies zu beheben, sollten Sie den Indexer zurücksetzen und erneut ausführen.
Warning: Skill input was invalid
Eine Eingabe für den Skill fehlt, hat den falschen Typ oder ist aus einem anderen Grund ungültig. Unter Umständen werden die folgenden Informationen angezeigt:
Could not execute skill
Skill executed but may have unexpected results
Für kognitive Skills sind erforderliche Eingaben und optionale Eingaben definiert. Beispielsweise sind für den Skill „Schlüsselbegriffserkennung“ die zwei erforderlichen Eingaben text
und languageCode
und keine optionalen Eingaben definiert. Benutzerdefinierte Qualifikationseingaben gelten jeweils als optionale Eingaben.
Wenn erforderliche Eingaben fehlen oder der Typ einer Eingabe nicht korrekt ist, wird der Skill übersprungen und eine Warnung generiert. Übersprungene Skills generieren keine Ausgabe. Wenn nachgelagerte Skills die Ausgaben des übersprungenen Skills nutzen, generieren sie möglicherweise zusätzliche Warnungen.
Wenn eine optionale Eingabe fehlt, wird der Skill weiterhin ausgeführt, aber die fehlende Eingabe kann zu einer unerwarteten Ausgabe führen.
In beiden Fällen wird diese Warnung aufgrund der Form der Daten erwartet. Ein Beispiel: Bei einem Dokument mit Informationen zu Personen in Form der Felder firstName
, middleName
und lastName
enthalten einige Dokumente möglicherweise keine Angabe für middleName
. Wenn Sie middleName
als Eingabe an einen Skill in der Pipeline übergeben, ist damit zu rechnen, dass diese Skilleingabe manchmal möglicherweise fehlt. Ob aufgrund dieser Warnung eine Aktion erforderlich ist, hängt von Ihren Daten und von Ihrem Szenario ab.
Wenn Sie einen Standardwert für eine fehlende Eingabe angeben möchten, können Sie den Skill Bedingt verwenden, um einen Standardwert zu generieren. Verwenden Sie dann die Ausgabe des Skills Bedingt als Skilleingabe.
{
"@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" } ]
}
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Die Skilleingabe weist den falschen Typ auf. | „Bei der erforderlichen Qualifikationseingabe handelt es sich nicht um eine Eingabe des erwarteten Typs (String ). Name: text , Quelle: /document/merged_content " "Die erforderliche Qualifikationseingabe hat nicht das erwartete Format. Name: text , Quelle: /document/merged_content ." "Das Iterieren über ein Nichtarray ist nicht möglich /document/normalized_images/0/imageCelebrities/0/detail/celebrities ." "0 In Nicht-Array kann nicht ausgewählt /document/normalized_images/0/imageCelebrities/0/detail/celebrities werden." |
Bei bestimmten Skills wird die Eingabe spezifischer Typen erwartet, beim Skill „Stimmung“ wird beispielsweise erwartet, dass text eine Zeichenfolge ist. Wenn die Eingabe einen anderen Wert als einen Zeichenfolgenwert angibt, wird der Skill nicht ausgeführt, und es werden keine Ausgaben generiert. Stellen Sie sicher, dass das Dataset Eingabewerte mit einheitlichem Typ enthält, oder verwenden Sie den Skill „Benutzerdefinierte Web-API“, um die Eingabe vorzuverarbeiten. Wenn Sie den Skill über ein Array durchlaufen, überprüfen Sie, ob * im Skillkontext und in der Eingabe an der jeweils richtigen Position gesetzt ist. Normalerweise sollten der Kontext und die Eingabequelle für Arrays mit * enden. |
Die Skilleingabe fehlt. | 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. |
Wenn diese Warnung bei allen Dokumenten angezeigt wird, könnten die Eingabepfade einen Tippfehler enthalten. Überprüfen Sie die Schreibweise des Eigenschaftsnamens. Suchen Sie im Pfad nach einem zusätzlichen oder fehlenden * . Vergewissern Sie sich, dass die Dokumente aus der Datenquelle die erforderlichen Eingaben bereitstellen. |
Der Sprachcode für die Skilleingabe ist ungültig. | Die Skilleingabe languageCode enthält die Sprachcodes X,Y,Z , von denen mindestens einer ungültig ist. |
Weitere Einzelheiten finden Sie unten. |
Warning: Skill input 'languageCode' has the following language codes 'X,Y,Z', at least one of which is invalid.
Mindestens einer Werte, der an die optionale languageCode
-Eingabe eines nachgeschalteten Skills übergeben wurde, wird nicht unterstützt. Dies kann vorkommen, wenn Sie die Ausgabe von LanguageDetectionSkill an nachfolgende Skills übergeben und die Ausgabe aus mehr Sprachen besteht, als in diesen nachgeschalteten Skills unterstützt werden.
Beachten Sie, dass Ihnen möglicherweise eine ähnliche Warnung wie diese angezeigt wird, wenn eine ungültige countryHint
-Eingabe an LanguageDetectionSkill übergeben wird. Wenn dies geschieht, überprüfen Sie, ob das Feld, das Sie aus Ihrer Datenquelle für diese Eingabe verwenden, gültige Ländercodes aus zwei Buchstaben (nach ISO 3166-1 Alpha-2) enthält. Wenn einige gültig und einige ungültig sind, fahren Sie mit dem folgenden Leitfaden fort, ersetzen Sie jedoch languageCode
durch countryHint
und defaultLanguageCode
durch defaultCountryHint
, um die Eingabe an Ihren Anwendungsfall anzupassen.
Wenn Sie wissen, dass Ihr Dataset nur eine einzige Sprache enthält, sollten Sie die LanguageDetectionSkill und die languageCode
-Qualifikationseingabe entfernen und stattdessen den Qualifikationsparameter defaultLanguageCode
für diese Qualifikation verwenden, vorausgesetzt, die Sprache wird für diese Qualifikation unterstützt.
Wenn Sie wissen, dass Ihr Dataset mehrere Sprachen enthält, und Sie daher LanguageDetectionSkill und die Eingabe languageCode
benötigen, sollten Sie ggf. einen Skill vom Typ ConditionalSkill hinzufügen, um Text in nicht unterstützten Sprachen herauszufiltern, bevor der Text an den Downstream-Skill übergeben wird. Hier ist ein Beispiel, wie dies bei dem Skill „EntityRecognitionSkill“ aussehen könnte:
{
"@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" } ]
}
Im folgenden finden Sie einige Referenzen für die derzeit unterstützten Sprachen für jede der Qualifikationen, die diese Fehlermeldung verursachen können:
- Von EntityRecognitionSkill unterstützte Sprachen
- Von EntityLinkingSkill unterstützte Sprachen
- Von KeyPhraseExtractionSkill unterstützte Sprachen
- Von LanguageDetectionSkill unterstützte Sprachen
- Von PIIDetectionSkill unterstützte Sprachen
- Von SentimentSkill unterstützte Sprachen
- Von Übersetzer unterstützte Sprachen
- Von Text SplitSkill Unterstützte Sprachen:
da, de, en, es, fi, fr, it, ko, pt
Warning: Skill input was truncated
Kognitive Skills begrenzen die Länge von Text, der gleichzeitig analysiert werden kann. Wenn die Texteingabe den Grenzwert überschreitet, wird der Text abgeschnitten, bevor er angereichert wird. Der Skill wird ausgeführt, aber nicht für alle Ihre Daten.
Im unten gezeigten Beispiel zu LanguageDetectionSkill
löst das Eingabefeld 'text'
diese Warnung möglicherweise aus, wenn die Eingabe das Zeichenlimit überschreitet. Eingabegrenzwerte finden Sie in der Referenzdokumentation zu Skills.
{
"@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
"inputs": [
{
"name": "text",
"source": "/document/text"
}
],
"outputs": [...]
}
Wenn Sie sicherstellen möchten, dass der gesamte Text analysiert wird, sollten Sie die Qualifikation „Aufteilung“ verwenden.
Warning: Web API skill response contains warnings
Der Indexer hat den Skill im Skillset ausgeführt, aber die Antwort aus der Web-API-Anforderung gibt an, dass Warnungen vorliegen. Überprüfen Sie die Warnungen, um zu verstehen, wie sich dies auf Ihre Daten auswirkt und ob weitere Maßnahmen erforderlich sind.
Warning: The current indexer configuration does not support incremental progress
Diese Warnung tritt nur bei Azure Cosmos DB-Datenquellen auf.
Der inkrementelle Status während der Indizierung stellt sicher, dass der Indexer bei der nächsten Ausführung an der gleichen Stelle fortgesetzt werden kann und nicht die gesamte Sammlung von vorn indizieren muss, wenn er durch vorübergehende Fehler oder das Erreichen des Ausführungszeitlimits unterbrochen wird. Dies ist besonders beim Indizieren umfangreicher Sammlungen wichtig.
Die Möglichkeit, einen nicht abgeschlossenen Indizierungsauftrag fortzusetzen, basiert darauf, dass Dokumente nach der Spalte _ts
sortiert sind. Der Indexer bestimmt anhand des Zeitstempels, welches Dokument als Nächstes abgerufen wird. Wenn die Spalte _ts
fehlt oder der Indexer nicht ermitteln kann, ob eine benutzerdefinierte Abfrage nach dieser Spalte sortiert ist, beginnt der Indexer am Anfang, und diese Warnung wird angezeigt.
Dieses Verhalten kann außer Kraft gesetzt werden, indem mithilfe der Konfigurationseigenschaft assumeOrderByHighWaterMarkColumn
der inkrementelle Fortschritt aktiviert und diese Warnung unterdrückt wird.
Weitere Informationen finden Sie unter Inkrementeller Status und benutzerdefinierte Abfragen.
Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.
Im Table Storage-Dienst ist die Größe der Entitätseigenschaften begrenzt. Zeichenfolgen können maximal 32.000 Zeichen enthalten. Wird eine Zeile mit einer Zeichenfolgeneigenschaft, die länger als 32.000 Zeichen ist, projiziert, werden nur die ersten 32.000 Zeichen beibehalten. Um dieses Problem zu umgehen, vermeiden Sie das Projizieren von Zeilen mit Zeichenfolgeneigenschaften, die länger als 32.000 Zeichen sind.
Warning: Truncated extracted text to X characters
Indexer begrenzen die pro Dokument extrahierbare Textmenge. Dieser Grenzwert ist tarifabhängig: 32.000 Zeichen für den Tarif „Free“, 64.000 Zeichen für den Tarif „Basic“, 4 Millionen Zeichen für den Tarif „Standard“, 8 Millionen Zeichen für den Tarif „Standard S2“ und 16 Millionen Zeichen für den Tarif „Standard S3“. Abgeschnittener Text wird nicht indiziert. Zur Vermeidung dieser Warnung können Sie versuchen, Dokumente mit umfangreichem Text in mehrere kleinere Dokumente aufzuteilen.
Weitere Informationen finden Sie unter Indexergrenzwerte.
Warning: Could not map output field 'X' to search index
Ausgabefeldzuordnungen, die auf nicht vorhandene oder Nulldaten verweisen, führen zu Warnungen für jedes Dokument und damit zu einem leeren Indexfeld. Um dieses Problem zu umgehen, überprüfen Sie die Quellpfade des Ausgabefelds auf mögliche Tippfehler, oder legen Sie mit dem bedingten Skill einen Standardwert fest. Weitere Informationen finden Sie unter Ausgabefeldzuordnung.
`Reason` | Details/Beispiel | Lösung |
---|---|---|
Kann nicht über Arrays durchlaufen werden | „Durchlaufen des Nichtarrays /document/normalized_images/0/imageCelebrities/0/detail/celebrities nicht möglich.“ |
Dieser Fehler tritt auf, wenn die Ausgabe kein Array ist. Wenn Sie der Ansicht sind, dass die Ausgabe ein Array sein sollte, überprüfen Sie den Pfad des angegebenen Ausgabequellfelds. Es könnte beispielsweise ein * im Namen des Quellfelds fehlen oder zu viel sein. Es ist auch möglich, dass die Eingabe für diese Qualifikation NULL ist, was zu einem leeren Array führt. Ähnliche Details finden Sie im Abschnitt Die Qualifikationseingabe war ungültig. |
Auswählen von 0 im Nichtarray nicht möglich |
„Auswählen von 0 im Nichtarray /document/pages nicht möglich.“ |
Dies kann vorkommen, wenn die Skillausgabe kein Array erzeugt und der Name des Ausgabequellfelds einen Arrayindex oder * in seinem Pfad enthält. Überprüfen Sie die in den Feldnamen der Ausgabequelle angegebenen Pfade und den Feldwert für den angegebenen Feldnamen. Ähnliche Details finden Sie im Abschnitt Die Qualifikationseingabe war ungültig. |
Warning: The data change detection policy is configured to use key column 'X'
Richtlinien für die Datenänderungserkennung weisen bestimmte Anforderungen an die zum Erkennen von Änderungen verwendeten Spalten auf. Eine dieser Anforderungen besteht darin, dass diese Spalte jedes Mal aktualisiert wird, wenn das Quellelement geändert wird. Eine weitere Anforderung besteht darin, dass der neue Wert für diese Spalte größer als der vorherige Wert ist. Schlüsselspalten erfüllen diese Anforderung nicht, da Sie nicht bei jeder Aktualisierung geändert werden. Um dieses Problem zu umgehen, wählen Sie eine andere Spalte für die Änderungserkennungsrichtlinie aus.
Warning: Document text appears to be UTF-16 encoded, but is missing a byte order mark
Die Indexer-Analysemodi müssen erkennen, wie Text codiert ist, bevor die Analyse gestartet werden kann. Die beiden gängigsten Methoden zum Codieren von Text sind UTF-16 und UTF-8. UTF-8 ist eine Codierung mit variabler Länge, bei der jedes Zeichen eine Länge zwischen 1 Byte und 4 Bytes aufweist. UTF-16 ist eine Codierung mit fester Länge, bei der jedes Zeichen 2 Bytes lang ist. UTF-16 hat zwei verschiedene Varianten: big endian
und little endian
. Die Textcodierung wird durch eine Bytereihenfolge-Marke (byte order mark
) bestimmt. Das ist eine Reihe von Bytes vor dem Text.
Codieren | Bytereihenfolge-Marke |
---|---|
UTF-16 Big-Endian | 0xFE 0xFF |
UTF-16 Little-Endian | 0xFF 0xFE |
UTF-8 | 0xEF 0xBB 0xBF |
Wenn keine Bytereihenfolge-Marke vorhanden ist, wird eine UTF-8-Codierung des Texts angenommen.
Um diese Warnung zu umgehen, ermitteln Sie die Textcodierung für dieses Blob, und fügen Sie die entsprechende Bytereihenfolge-Marke hinzu.
Warning: Azure Cosmos DB collection 'X' has a Lazy indexing policy. Some data may be lost
Sammlungen mit Indizierungsrichtlinien vom Typ Verzögert können nicht konsistent abgefragt werden, was dazu führt, dass Ihr Indexer Daten auslässt. Um diese Warnung zu umgehen, ändern Sie die Indizierungsrichtlinie in „Konsistent“.
Warning: The document contains very long words (longer than 64 characters). These words may result in truncated and/or unreliable model predictions.
Diese Warnung wird vom Sprachdienst von Azure AI Services übergeben. In einigen Fällen kann diese Warnung problemlos ignoriert werden – etwa, wenn die lange Zeichenfolge einfach eine lange URL ist. Beachten Sie, dass ein Wort, das länger als 64 Zeichen ist, auf 64 Zeichen gekürzt wird, was die Modellvorhersagen beeinträchtigen kann.
Error: Cannot write more bytes to the buffer than the configured maximum buffer size
Indexer haben Grenzwerte für die Dokumentgröße. Stellen Sie sicher, dass die Dokumente in Ihrer Datenquelle kleiner als die unterstützte Größenbeschränkung sind, wie für Ihre Dienstebene dokumentiert.