Indizieren von Daten aus Azure Blob Storage
In diesem Artikel erfahren Sie, wie Sie einen Indexer konfigurieren, der Inhalte aus Azure Blob Storage importiert und in Azure KI Search durchsuchbar macht. Eingaben für den Indexer sind Ihre Blobs, in einem einzelnen Container. Die Ausgabe ist ein Suchindex mit durchsuchbaren Inhalten und Metadaten, die in einzelnen Feldern gespeichert sind.
Zum Konfigurieren und Ausführen des Indexers können Sie Folgendes verwenden:
- Suchdienst-REST API, eine beliebige Version.
- Ein Azure SDK-Paket, eine beliebige Version.
- Mit dem Datenimport-Assistenten im Azure-Portal.
- Assistent im Azure Portal zum Importieren und Vektorisieren von Daten.
In diesem Artikel werden die REST-APIs verwendet, um die einzelnen Schritte zu veranschaulichen.
Voraussetzungen
Azure Blob Storage, Standardleistung (Allgemein v2).
Zugriffsebenen beinhalten „Heiß“, „Kühl“, „Kalt“ und „Archiv“. Indexer können Blobs auf heißen, kühlen und kalten Zugriffsebenen abrufen.
Blobs stellen Textinhalte und Metadaten bereit. Wenn Blobs binäre Inhalte oder unstrukturierten Text enthalten, sollten Sie eine KI-Anreicherung für die Verarbeitung von Bildern und natürlicher Sprache hinzufügen. Blobinhalte können die Indexergrenzwerte für Ihre Suchdienstebene nicht überschreiten.
Eine unterstützte Netzwerkkonfiguration und Datenzugriff. Sie benötigen mindestens Leseberechtigungen in Azure Storage. Eine Speicherverbindungszeichenfolge, die einen Zugriffsschlüssel enthält, bietet Ihnen Lesezugriff auf Speicherinhalte. Wenn Sie stattdessen Microsoft Entra-Anmeldungen und -Rollen verwenden, stellen Sie sicher, dass die verwaltete Identität des Suchdiensts über die Storage-Blobdatenleser-Berechtigungen verfügt.
Standardmäßig akzeptieren sowohl Search als auch Storage Anforderungen von öffentlichen IP-Adressen. Wenn die Netzwerksicherheit kein direktes Problem darstellt, können Sie Blobdaten mithilfe der Verbindungszeichenfolge und Leseberechtigungen indizieren. Wenn Sie bereit sind, Netzwerkschutz hinzuzufügen, finden Sie unter Indexerzugriff auf Datenquellen mit Azure-Netzwerksicherheitsfeatures Leitfäden für den Datenzugriff.
Verwenden Sie einen REST-Client, wenn Sie REST-Aufrufe formulieren wollen, die den in diesem Artikel gezeigten ähnlich sind.
Unterstützte Aufgaben
Sie können diesen Indexer für die folgenden Aufgaben verwenden:
- Datenindizierung und inkrementelle Indizierung: Der Indexer kann Dateien und zugehörige Metadaten aus Blob-Containern und Ordnern indizieren. Es erkennt neue und aktualisierte Dateien und Metadaten durch die integrierte Änderungserkennung. Sie können eine planmäßige oder bedarfsorientierte Datenaktualisierung konfigurieren.
- Löscherkennung: Der Indexer kann Löschungen über systemeigenes vorläufiges Löschen oder über benutzerdefinierte Metadaten erkennen.
- Angewandte KI durch Skillsets: Skillsets werden vom Indexer vollständig unterstützt. Dazu gehören wichtige Features wie die integrierte Vektorisierung, die Datenabschnitte und Einbettungsschritte hinzufügt.
- Parsing-Modi: Der Indexer unterstützt JSON-Parsing-Modi, wenn Sie JSON-Arrays oder -Zeilen in einzelne Suchdokumente parsen möchten. Außerdem wird der Markdown-Analysemodus unterstützt.
- Kompatibilität mit anderen Features: Der Indexer ist auf eine nahtlose Funktionsweise mit anderen Indexerfeatures wie Debugsitzungen, den Indexercache für inkrementelle Anreicherungenund Wissensspeicher ausgelegt.
Unterstützte Dokumentformate
Der Blobindexer kann Text aus den folgenden Dokumentformaten extrahieren:
- CSV (siehe Indizierung von CSV-Blobs)
- EML
- EPUB
- GZ
- HTML
- JSON (Siehe Indizierung von JSON-Blobs)
- KML (XML für geografische Darstellungen)
- Microsoft Office-Formate: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (Outlook-E-Mails), XML (WORD XML 2003 und 2006)
- Öffnen von Dokumentformaten: ODT, ODS, ODP
- Textdateien (Siehe auch Indizierung von Nur-Text)
- RTF
- XML
- ZIP
Bestimmen der zu indizierenden Blobs
Überprüfen Sie vor dem Einrichten der Indizierung die Quelldaten, um zu ermitteln, ob Änderungen im Voraus vorgenommen werden sollten. Ein Indexer kann immer nur Inhalte aus einem Container gleichzeitig indizieren. Standardmäßig werden alle Blobs im Container verarbeitet. Sie haben mehrere Optionen für eine stärker selektive Verarbeitung:
Platzieren von Blobs in einem virtuellen Ordner. Eine Indexer-Datenquellendefinition enthält einen „query“-Parameter, der einen virtuellen Ordner akzeptiert. Wenn Sie einen virtuellen Ordner angeben, werden nur die Blobs im Ordner indiziert.
Ein- oder Ausschließen von Blobs nach Dateityp. Mithilfe der Liste der unterstützten Dokumentformate können Sie bestimmen, welche Blobs ausgeschlossen werden sollen. Beispielsweise können Sie Bild- oder Audiodateien ausschließen, die keinen durchsuchbaren Text bereitstellen. Diese Funktion wird über Konfigurationseinstellungen im Indexer gesteuert.
Ein- oder Ausschließen beliebiger Blobs. Wenn Sie ein bestimmtes Blob aus irgendeinem Grund überspringen möchten, können Sie Blobs in Blob Storage die folgenden Metadateneigenschaften und -werte hinzufügen. Wenn der Indexer auf diese Eigenschaft stößt, überspringt er den Blob oder dessen Inhalt im Indizierungslauf.
Name der Eigenschaft Eigenschaftswert Erklärung „AzureSearch_Skip“ "true"
Weist den Blobindexer an, das Blob vollständig zu überspringen. Weder die Metadaten- noch die Inhaltsextraktion werden versucht. Dies ist nützlich, wenn ein bestimmtes Blob wiederholt fehlschlägt und den Indizierungsprozess unterbricht. „AzureSearch_SkipContent“ "true"
Überspringt Inhalte und extrahiert nur die Metadaten. Dies entspricht der Einstellung "dataToExtract" : "allMetadata"
, die in den Konfigurationseinstellungen beschrieben sind, lediglich eingegrenzt auf ein bestimmtes Blob.
Wenn Sie keine Ein- oder Ausschlusskriterien einrichten, meldet der Indexer ein nicht berechtigtes Blob als Fehler und fährt fort. Wenn genügend Fehler auftreten, wird die Verarbeitung möglicherweise beendet. Sie können die Fehlertoleranz in den Konfigurationseinstellungen des Indexers angeben.
Ein Indexer erstellt in der Regel ein Suchdokument pro Blob, wobei der Textinhalt und die Metadaten als durchsuchbare Felder in einem Index erfasst werden. Wenn Blobs ganze Dateien sind, können Sie sie möglicherweise in mehrere Suchdokumente analysieren. Beispielsweise können Sie Zeilen in einer CSV-Datei analysieren, um ein Suchdokument pro Zeile zu erstellen.
Ein Verbunddokument oder eingebettetes Dokument (z. B. ein ZIP-Archiv, ein Word-Dokument mit eingebetteter Outlook-E-Mail mit Anlagen oder eine MSG-Datei mit Anlagen) wird ebenfalls als einzelnes Dokument indiziert. So werden beispielsweise alle Bilder, die aus den Anlagen einer MSG-Datei extrahiert wurden, im Feld „normalized_images“ zurückgegeben. Wenn Sie über Bilder verfügen, sollten Sie eine KI-Anreicherung hinzufügen, um mehr Suchhilfe aus diesen Inhalten zu erhalten.
Der Textinhalt eines Dokuments wird in ein Zeichenfolgefeld mit dem Namen „content“ extrahiert. Sie können auch Standard- sowie benutzerdefinierte Metadaten extrahieren.
Indizieren der Metadaten von Blobs
Blobmetadaten können auch indiziert werden. Dies ist hilfreich, wenn Sie der Meinung sind, dass eine der Standard- oder benutzerdefinierten Metadateneigenschaften für Filter und Abfragen nützlich ist.
Vom Benutzer angegebene Metadateneigenschaften werden wortgetreu extrahiert. Um die Werte zu erhalten, müssen Sie im Suchindex ein Feld des Typs Edm.String
definieren, das den gleichen Namen hat wie der Metadatenschlüssel des Blobs. Wenn ein Blob beispielsweise über den Metadatenschlüssel Sensitivity
mit dem Wert High
verfügt, müssen Sie ein Feld mit dem Namen Sensitivity
in Ihrem Suchindex definieren, das dann mit dem Wert High
aufgefüllt wird.
Standard-Blobmetadateneigenschaften können in ähnlich benannte und typisierte Felder extrahiert werden, wie unten aufgeführt. Der Blobindexer erstellt automatisch interne Feldzuordnungen für diese Blobmetadateneigenschaften und konvertiert den ursprünglichen Bindestrichnamen („metadata-storage-name“) in einen entsprechenden Unterstrichnamen („metadata_storage_name“).
Sie müssen der Indexdefinition weiterhin die unterstrichenen Felder hinzufügen, aber Sie können Feldzuordnungen weglassen, da der Indexer die Zuordnung automatisch erstellt.
metadata_storage_name (
Edm.String
): der Dateiname des Blobs. Für ein Blob mit dem Namen „/my-container/my-folder/subfolder/resume.pdf“ lautet der Wert dieses Felds beispielsweiseresume.pdf
.metadata_storage_path (
Edm.String
): der vollständigen URI des Blobs, einschließlich Speicherkonto. Beispiel:https://myaccount.blob.core.windows.net/my-container/my-folder/subfolder/resume.pdf
metadata_storage_content_type (
Edm.String
): Inhaltstyp, der mit dem Code angegeben wird, den Sie zum Hochladen des Blobs verwendet haben. Beispiel:application/octet-stream
.metadata_storage_last_modified (
Edm.DateTimeOffset
): Zeitstempel der letzten Änderung des Blobs. In Azure KI Search wird dieser Zeitstempel zum Identifizieren geänderter Blobs verwendet, um die erneute Indizierung aller Elemente nach der ersten Indizierung zu vermeiden.metadata_storage_size (
Edm.Int64
): Blobgröße in Bytes.metadata_storage_content_md5 (
Edm.String
): MD5-Hash des Blobinhalts, sofern vorhanden.metadata_storage_sas_token (
Edm.String
): ein temporäres SAS Token, das von benutzerdefinierten Qualifikationen verwendet werden kann, um Zugriff auf den Blob zu erhalten. Dieses Token sollte nicht zur späteren Verwendung gespeichert werden, da es ablaufen kann.
Schließlich können auch alle Metadateneigenschaften, die für das Dokumentformat der zu indizierenden Blobs spezifisch sind, im Indexschema dargestellt werden. Weitere Informationen zu inhaltsspezifischen Metadaten finden Sie unter Eigenschaften von Inhaltsmetadaten.
Wichtig ist der Hinweis, dass Sie nicht für alle der oben genannten Eigenschaften Felder in Ihrem Suchindex definieren müssen. Erfassen Sie lediglich die Eigenschaften, die Sie für Ihre Anwendung benötigen.
Derzeit wird das Indizieren von BLOB-Indextags von diesem Indexer nicht unterstützt.
Definieren der Datenquelle
Die Datenquellendefinition gibt die zu indizierenden Daten, die Anmeldeinformationen und die Richtlinien für die Identifizierung von Datenänderungen an. Eine Datenquelle wird als unabhängige Ressource definiert, sodass sie von mehreren Indexern verwendet werden kann.
Erstellen oder aktualisieren Sie eine Datenquelle, um ihre Definition festzulegen:
{ "name" : "my-blob-datasource", "type" : "azureblob", "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" }, "container" : { "name" : "my-container", "query" : "<optional-virtual-directory-name>" } }
Legen Sie "type" auf
"azureblob"
fest (erforderlich).Legen Sie "credentials" auf eine Azure Storage-Verbindungszeichenfolge fest. Im nächsten Abschnitt werden die unterstützten Formate beschrieben.
Legen Sie „container“ auf den Blobcontainer fest, und verwenden Sie „query“, um Unterordner anzugeben.
Eine Datenquellendefinition kann auch Richtlinien für vorläufiges Löschen enthalten, wenn der Indexer ein Suchdokument löschen soll, wenn das Quelldokument für den Löschvorgang gekennzeichnet ist.
Unterstützte Anmeldeinformationen und Verbindungszeichenfolgen
Indexer können mithilfe der folgenden Verbindungen eine Verbindung mit einem Blobcontainer herstellen.
Verbindungszeichenfolge für den Vollzugriff auf ein Speicherkonto |
---|
{ "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<your storage account>;AccountKey=<your account key>;" } |
Sie können die Verbindungszeichenfolge von der Speicherkontoseite im Azure-Portal abrufen, indem Sie im linken Navigationsbereich auf Zugriffsschlüssel klicken. Stellen Sie sicher, dass Sie eine vollständige Verbindungszeichenfolge und nicht nur einen Schlüssel auswählen. |
Verbindungszeichenfolge für verwaltete Identitäten |
---|
{ "connectionString" : "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;" } |
Diese Verbindungszeichenfolge erfordert keinen Kontoschlüssel, aber Sie müssen zuvor einen Suchdienst für das Herstellen einer Verbindung mithilfe einer verwalteten Identität konfiguriert haben. |
SAS-Verbindungszeichenfolge (Shared Access Signature**) für ein Speicherkonto |
---|
{ "connectionString" : "BlobEndpoint=https://<your account>.blob.core.windows.net/;SharedAccessSignature=?sv=2016-05-31&sig=<the signature>&spr=https&se=<the validity end time>&srt=co&ss=b&sp=rl;" } |
Die SAS muss über Listen- und Leseberechtigungen für Container und Objekte (in diesem Fall Blobs) verfügen. |
Shared Access Signature des Containers |
---|
{ "connectionString" : "ContainerSharedAccessUri=https://<your storage account>.blob.core.windows.net/<container name>?sv=2016-05-31&sr=c&sig=<the signature>&se=<the validity end time>&sp=rl;" } |
Die SAS muss über Listen- und Leseberechtigungen für den Container verfügen. Weitere Informationen finden Sie unter Gewähren von eingeschränktem Zugriff auf Azure Storage-Ressourcen mithilfe von SAS (Shared Access Signature). |
Hinweis
Bei Verwendung von SAS-Anmeldeinformationen müssen Sie die Anmeldedaten für die Datenquellen in regelmäßigen Abständen mit erneuerten Signaturen aktualisieren, um den Ablauf zu verhindern. Wenn SAS-Anmeldeinformationen ablaufen, zeigt der Indexer eine Fehlermeldung wie „Die in der Verbindungszeichenfolge angegebenen Anmeldeinformationen sind ungültig oder abgelaufen“ an.
Hinzufügen von Suchfeldern zu einem Index
Fügen Sie in einem Suchindex Felder hinzu, um den Inhalt und die Metadaten Ihrer Azure-Blobs zu akzeptieren.
Erstellen oder aktualisieren Sie einen Index, um Suchfelder zu definieren, in denen Blobinhalte und Metadaten gespeichert werden:
POST https://[service name].search.windows.net/indexes?api-version=2024-07-01 { "name" : "my-search-index", "fields": [ { "name": "ID", "type": "Edm.String", "key": true, "searchable": false }, { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false }, { "name": "metadata_storage_name", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true }, { "name": "metadata_storage_size", "type": "Edm.Int64", "searchable": false, "filterable": true, "sortable": true }, { "name": "metadata_storage_content_type", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true }, ] }
Erstellen Sie ein Dokumentschlüsselfeld („key“: true). Metadateneigenschaften sind die besten Kandidaten für Blobinhalte.
metadata_storage_path
(Standard) vollständiger Pfad zum Objekt oder zur Datei. Das Schlüsselfeld („ID“ in diesem Beispiel) wird mit Werten aus „metadata_storage_path“ aufgefüllt, da es sich um die Standardeinstellung handelt.metadata_storage_name
kann nur verwendet werden, wenn Namen eindeutig sind. Wenn Sie dieses Feld als Schlüssel benötigen, verschieben Sie"key": true
in diese Felddefinition.Eine benutzerdefinierte Metadateneigenschaft, die Sie Blobs hinzufügen. Für diese Option ist es erforderlich, dass diese Metadateneigenschaft im Prozess des Hochladens von Blobs allen Blobs hinzugefügt wird. Da der Schlüssel eine erforderliche Eigenschaft ist, schlägt die Indizierung aller Blobs fehl, denen ein Wert fehlt. Wenn Sie eine benutzerdefinierte Metadateneigenschaft als Schlüssel verwenden, vermeiden Sie es, Änderungen an dieser Eigenschaft vorzunehmen. Indexer fügen doppelte Dokumente für denselben Blob hinzu, wenn sich die Schlüsseleigenschaft ändert.
Metadateneigenschaften enthalten häufig Zeichen wie
/
und-
, die für Dokumentschlüssel ungültig sind. Allerdings codiert der Indexer automatisch die Schlüsselmetadaten-Eigenschaft, ohne dass eine Konfiguration oder Feldzuordnung erforderlich ist.Fügen Sie ein Feld „content“ hinzu, um extrahierten Text aus jeder Datei über die Eigenschaft „content“ des Blobs zu speichern. Sie sind nicht verpflichtet, diesen Namen zu verwenden, aber Sie können so die Vorteile impliziter Zuordnungen von Feldern nutzen.
Fügen Sie Felder für Standardmetadateneigenschaften hinzu. Der Indexer kann Eigenschaften von benutzerdefinierten Metadaten, Standardmetadaten und inhaltsspezifischen Metadaten lesen.
Konfigurieren und Ausführen des Blobindexers
Nach der Erstellung von Index und Datenquelle können Sie den Indexer erstellen. Die Indexerkonfiguration gibt die Eingaben, Parameter und Eigenschaften an, die das Laufzeitverhalten steuern. Sie können auch angeben, welche Teile eines Blobs indiziert werden sollen.
Erstellen oder aktualisieren Sie den Indexer, indem Sie ihm einen Namen geben und einen Verweis auf die Datenquelle und den Zielindex hinzufügen:
POST https://[service name].search.windows.net/indexers?api-version=2024-07-01 { "name" : "my-blob-indexer", "dataSourceName" : "my-blob-datasource", "targetIndexName" : "my-search-index", "parameters": { "batchSize": null, "maxFailedItems": null, "maxFailedItemsPerBatch": null, "configuration": { "indexedFileNameExtensions" : ".pdf,.docx", "excludedFileNameExtensions" : ".png,.jpeg", "dataToExtract": "contentAndMetadata", "parsingMode": "default" } }, "schedule" : { }, "fieldMappings" : [ ] }
Legen Sie
batchSize
fest, wenn der Standardwert (10 Dokumente) die verfügbaren Ressourcen entweder nicht auslastet oder überlastet. Die Standardbatchgrößen sind datenquellenspezifisch. Bei der Blobindizierung wird eine Batchgröße von 10 Dokumenten unter Berücksichtigung der größeren durchschnittlichen Dokumentgröße festgelegt.Steuern Sie unter „configuration“, welche Blobs basierend auf dem Dateityp indiziert werden, oder geben Sie dies nicht an, um alle Blobs abzurufen.
Geben Sie für
"indexedFileNameExtensions"
eine durch Trennzeichen getrennte Liste der Dateierweiterungen an (mit vorangestelltem Punkt). Machen Sie dasselbe für"excludedFileNameExtensions"
, um anzugeben, welche Erweiterungen übersprungen werden sollen. Wenn dieselbe Erweiterung in beiden Listen vorhanden ist, wird sie von der Indizierung ausgeschlossen.Legen Sie unter „configuration“ „dataToExtract“ fest, um zu steuern, welche Teile der Blobs indiziert werden:
„contentAndMetadata“ gibt an, dass alle aus dem Blob extrahierten Metadaten und Textinhalte indiziert werden. Dies ist der Standardwert.
„storageMetadata“ gibt an, dass nur die standardmäßigen Blobeigenschaften und benutzerspezifischen Metadaten indiziert werden.
„allMetadata“ gibt an, dass standardmäßige Blobeigenschaften und alle Metadaten für gefundene Inhaltstypen aus dem Blobinhalt extrahiert und indiziert werden.
Unter „configuration“ „parsingMode“. Der Standardanalysemodus ist ein Suchdokument pro Blob. Wenn Blobs Nur-Text sind, können Sie eine bessere Leistung erzielen, indem Sie zur Nur-Text-Analyse wechseln. Wenn Sie eine genauere Analyse benötigen, die Blobs mehreren Suchdokumenten zuordnet, geben Sie einen anderen Modus an. Die 1:n-Analyse wird für Blobs unterstützt, die besteht aus:
Geben Sie Feldzuordnungen an, wenn es Unterschiede beim Feldnamen oder -typ gibt, oder wenn Sie mehrere Versionen eines Quellfelds im Suchindex benötigen.
Bei der Blobindizierung können Sie häufig Feldzuordnungen weglassen, da der Indexer über integrierte Unterstützung für die Zuordnung der „content“- und Metadateneigenschaften zu ähnlich benannten und typisierten Feldern in einem Index verfügt. Bei Metadateneigenschaften ersetzt der Indexer im Suchindex automatisch Bindestriche
-
durch Unterstriche.Weitere Informationen zu anderen Eigenschaften finden Sie unter Erstellen von Indexern in Azure Cognitive Search. Eine vollständige Liste der Parameterbeschreibungen finden Sie unter REST-API.
Ein Indexer wird automatisch ausgeführt, wenn er erstellt wird. Sie können dies verhindern, indem Sie „disabled“ (Deaktiviert) auf „true“ festlegen. Um die Ausführung des Indexers zu steuern, führen Sie einen Indexer nach Bedarf aus, oder legen Sie für ihn einen Zeitplan fest.
Indizieren von Daten aus mehreren Azure Blob-Containern in einen einzelnen Index
Beachten Sie, dass ein Indexer nur Daten aus einem einzelnen Container indizieren kann. Wenn Sie Daten aus mehreren Containern indizieren und in einem einzigen KI-Suchindex konsolidieren müssen, können Sie dies erreichen, indem Sie mehrere Indexer konfigurieren, die alle an denselben Index weitergeleitet werden. Beachten Sie die maximale Anzahl verfügbarer Indexer pro SKU.
Zum Veranschaulichen betrachten wir ein Beispiel für zwei Indexer namens my-blob-datasource1
und my-blob-datasource2
, die Daten aus zwei unterschiedlichen Datenquellen abrufen. Jede Datenquelle verweist auf einen separaten Azure Blob-Container, aber beide führen zum selben Index namens my-search-index
.
Beispiel für die erste Indexerdefinition:
POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{
"name" : "my-blob-indexer1",
"dataSourceName" : "my-blob-datasource1",
"targetIndexName" : "my-search-index",
"parameters": {
"batchSize": null,
"maxFailedItems": null,
"maxFailedItemsPerBatch": null,
"configuration": {
"indexedFileNameExtensions" : ".pdf,.docx",
"excludedFileNameExtensions" : ".png,.jpeg",
"dataToExtract": "contentAndMetadata",
"parsingMode": "default"
}
},
"schedule" : { },
"fieldMappings" : [ ]
}
Zweite Indexerdefinition, die parallel ausgeführt wird:
POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{
"name" : "my-blob-indexer2",
"dataSourceName" : "my-blob-datasource2",
"targetIndexName" : "my-search-index",
"parameters": {
"batchSize": null,
"maxFailedItems": null,
"maxFailedItemsPerBatch": null,
"configuration": {
"indexedFileNameExtensions" : ".pdf,.docx",
"excludedFileNameExtensions" : ".png,.jpeg",
"dataToExtract": "contentAndMetadata",
"parsingMode": "default"
}
},
"schedule" : { },
"fieldMappings" : [ ]
}
Überprüfen des Indexerstatus
Um den Indexerstatus und den Ausführungsverlauf zu überwachen, senden Sie eine Anforderung zum Abrufen des Indexerstatus:
GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
Die Antwort enthält den Status und die Anzahl der verarbeiteten Elemente. Sie sollte in etwa wie das folgende Beispiel aussehen:
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":
[
{
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
... earlier history items
]
}
Der Ausführungsverlauf enthält bis zu 50 der zuletzt abgeschlossenen Ausführungen. Diese sind in umgekehrter chronologischer Reihenfolge sortiert, sodass die neueste Ausführung als Erstes aufgelistet wird.
Umgang mit Fehlern
Zu häufigen Fehlern bei der Indizierung gehören nicht unterstützte Inhaltstypen, fehlende Inhalte oder übergroße Blobs.
Der Blobindexer wird standardmäßig beendet, sobald ein Blob mit einem nicht unterstützten Inhaltstyp (z. B. einer Audiodatei) gefunden wird. Sie können mit dem Parameter „excludedFileNameExtensions“ bestimmte Inhaltstypen überspringen. Möglicherweise möchten Sie jedoch, dass die Indizierung auch dann fortgesetzt wird, wenn Fehler auftreten, und dann später einzelne Dokumente debuggen. Weitere Informationen zu Indexerfehlern finden Sie unter Beheben von häufigen Problemen bei Suchindexern in Azure Cognitive Search und Beheben von häufigen Fehlern und Warnungen bei Suchindexern in Azure Cognitive Search.
Es gibt fünf Indexereigenschaften, die die Reaktion des Indexers beim Auftreten von Fehlern steuern.
PUT /indexers/[indexer name]?api-version=2024-07-01
{
"parameters" : {
"maxFailedItems" : 10,
"maxFailedItemsPerBatch" : 10,
"configuration" : {
"failOnUnsupportedContentType" : false,
"failOnUnprocessableDocument" : false,
"indexStorageMetadataOnlyForOversizedDocuments": false
}
}
}
Parameter | Gültige Werte | Beschreibung |
---|---|---|
„maxFailedItems“ | -1, NULL oder 0, positive ganze Zahl | Setzen Sie die Indizierung fort, wenn an einem beliebigen Punkt der Verarbeitung Fehler auftreten, entweder bei der Analyse von Blobs oder beim Hinzufügen von Dokumenten zu einem Index. Legen Sie diese Eigenschaften auf die Anzahl zulässiger Fehler fest. Der Wert -1 ermöglicht die Verarbeitung unabhängig davon, wie viele Fehler auftreten. Andernfalls ist der Wert eine positive ganze Zahl. |
„maxFailedItemsPerBatch“ | -1, NULL oder 0, positive ganze Zahl | Wie oben, wird aber für die Batchindizierung verwendet. |
„failOnUnsupportedContentType“ | true oder false | Wenn der Indexer den Inhaltstyp nicht bestimmen kann, geben Sie an, ob der Auftrag fortgesetzt wird oder als nicht gelungen gilt. |
„failOnUnprocessableDocument“ | true oder false | Wenn der Indexer ein Dokument eines ansonsten unterstützten Inhaltstyps nicht verarbeiten kann, geben Sie an, ob der Auftrag fortgesetzt wird oder als nicht gelungen gilt. |
„indexStorageMetadataOnlyForOversizedDocuments“ | true oder false | Zu große Blobs werden standardmäßig als Fehler behandelt. Wenn Sie diesen Parameter auf „true“ festlegen, versucht der Indexer, seine Metadaten zu indizieren, auch wenn der Inhalt nicht indiziert werden kann. Grenzwerte für die Blobgröße finden Sie unter Dienstgrenzwerte. |