Indexer in Azure KI Search

Ein Indexer in Azure AI Search ist ein Crawler , der Textdaten aus Clouddaten extrahiert und einen Suchindex mithilfe von Feld-zu-Feld-Zuordnungen zwischen Quelldaten und einem Suchindex auffüllt. Dieser Ansatz wird auch als „Pullmodell“ bezeichnet, weil der Suchdienst Daten abruft, ohne dass Sie Code schreiben müssen, der einem Index Daten hinzufügt.

Indexer fördern auch die Ausführung von Skillset und KI-Anreicherung, wo Sie Fähigkeiten konfigurieren können, um zusätzliche Verarbeitung von Inhalten zu integrieren, die an einen Index weitergeleitet werden. Einige Beispiele sind OCR über Bilddateien, textteilungsfertige Fähigkeiten für Datenabschnitte, Textübersetzung für mehrere Sprachen.

Indexer zielen auf unterstützte Datenquellen ab. Eine Indexerkonfiguration gibt eine Datenquelle (Ursprung) und einen Suchindex (Ziel) an. Bei mehreren Quellen, z. B. Azure Blob Storage, gibt es mehrere Konfigurationseigenschaften speziell für diesen Inhaltstyp.

Sie können Indexer bei Bedarf oder nach einem Zeitplan für die regelmäßige Datenaktualisierung ausführen (z. B. alle fünf Minuten). Für häufigere Aktualisierungen ist ein „Pushmodell“ erforderlich, bei dem Daten in Azure KI Search und Ihrer externen Datenquelle gleichzeitig aktualisiert werden.

Ein Suchdienst führt einen Indexerauftrag pro Sucheinheit aus. Wenn Sie gleichzeitige Verarbeitung benötigen, stellen Sie sicher, dass Sie über ausreichende Replikate verfügen. Indexer werden nicht im Hintergrund ausgeführt, sodass Sie möglicherweise mehr Abfrageeinschränkung erkennen als üblich, wenn der Dienst unter Druck steht.

Indexerszenarien und Anwendungsfälle

Sie können einen Indexer als alleiniges Mittel für die Datenerfassung oder in Kombination mit anderen Techniken verwenden. In der folgenden Tabelle werden die Hauptszenarios zusammengefasst.

Szenario Strategie
Einzelne Datenquelle Dieses Muster ist das einfachste: eine einzige Datenquelle ist der einzige Inhaltsanbieter für einen Suchindex. Die meisten unterstützten Datenquellen bieten eine Form der Änderungserkennung, sodass nachfolgende Indexerausführungen den Unterschied übernehmen, wenn Inhalte in der Quelle hinzugefügt oder aktualisiert werden.
Mehrere Datenquellen Eine Indexerspezifikation kann nur eine einzige Datenquelle haben, aber der Suchindex selbst kann Inhalte aus mehreren Quellen akzeptieren, wobei jede Indexerausführung neuen Inhalt von einem anderen Datenanbieter liefert. Jede Quelle kann ihren Anteil an vollständigen Dokumenten beitragen oder ausgewählte Felder in jedem Dokument auffüllen. Einen genaueren Blick auf dieses Szenario finden Sie unter Tutorial: Indizieren von mehreren Datenquellen mithilfe des .NET SDK.
Mehrere Indexer Mehrere Datenquellen werden in der Regel mit mehreren Indexern gekoppelt, wenn Sie Laufzeitparameter, den Zeitplan oder Feldzuordnungen anpassen müssen.

Regionübergreifendes Aufskalieren von Azure KI Search ist ein anderes Szenario. Es kann sein, dass sich mehrere Kopien des gleichen Suchindex in unterschiedlichen Regionen befinden. Zum Synchronisieren des Suchindexinhalts können mehrere Indexer vorhanden sein, die Daten aus derselben Datenquelle pullen und in jeder Region jeweils einen anderen Suchindex als Ziel verwenden.

Für die parallele Indizierung besonders großer Datasets ist ebenfalls eine Strategie mit mehreren Indexern erforderlich, wobei jedem Indexer eine Teilmenge der Daten zugeordnet ist.
Inhaltstransformation Indexer fördern die Ausführung von Skillset und KI-Anreicherung. Inhaltstransformationen werden in einem Skillset definiert, das Sie dem Indexer anfügen. Sie können fähigkeiten verwenden, um Datenblöcke und Vektorisierung zu integrieren.

Sie sollten jeweils einen Indexer pro Kombination aus Zielindex und Datenquelle erstellen. Sie können mehrere Indexer erstellen, die in denselben Index schreiben, und dieselbe Datenquelle für mehrere Indexer verwenden. Ein Indexer kann jedoch jeweils nur eine Datenquelle auf einmal nutzen und nur in einen einzelnen Index schreiben. Wie die folgende Abbildung veranschaulicht, bietet eine Datenquelle die Eingabe für einen Indexer, der dann einen einzelnen Index füllt:

Diagram of indexer workflow.

Obwohl Sie zurzeit nur einen Indexer verwenden können, ist es möglich, Ressourcen in verschiedenen Kombinationen zu verwenden. Die wichtigsten Informationen in der nächsten Abbildung sind die Tatsachen, dass eine Datenquelle mit mehreren Indexern gekoppelt werden kann, während mehrere Indexer in denselben Index schreiben können.

Diagram of multiple combinations of data sources, indexers, and indexes.

Unterstützte Datenquellen

Die Indexer durchforsten die Datenspeicher in und außerhalb von Azure.

Azure Cosmos DB für Cassandra wird nicht unterstützt.

Indexer akzeptieren flache Zeilensätze, z. B. eine Tabelle oder Ansicht, oder Elemente in einem Container oder Ordner. In den meisten Fällen wird ein Suchdokument pro Zeile, Datensatz oder Element erstellt.

Indexerverbindungen mit Remotedatenquellen können mit Standard-Internetverbindungen (öffentlich) oder verschlüsselten privaten Verbindungen hergestellt werden, wenn Sie einen freigegebenen privaten Link verwenden. Sie können auch Verbindungen mit Authentifizierung über eine verwaltete Identität einrichten. Weitere Informationen zu sicheren Verbindungen finden Sie unter Indexerzugriff auf Datenquellen mit Azure-Netzwerksicherheitsfeatures und Herstellen einer Verbindung zu einer Datenquelle mithilfe einer verwalteten Identität.

Phasen der Indizierung

Bei einer anfänglichen Ausführung, bei der der Index leer ist, liest ein Indexer alle Daten, die in der Tabelle oder im Container bereitgestellt werden. Bei nachfolgenden Ausführungen kann der Indexer in der Regel nur die geänderten Daten erkennen und abrufen. Bei Blobdaten erfolgt die Änderungserkennung automatisch. Bei anderen Datenquellen wie Azure SQL oder Azure Cosmos DB muss die Änderungserkennung aktiviert sein.

Für jedes empfangene Dokument implementiert oder koordiniert der Indexer mehrere Schritte – vom Abrufen des Dokuments bis hin zur Übergabe an eine Suchmaschine für die Indizierung. Optional initiiert ein Indexer auch Skillsetausführungen und -ausgaben, vorausgesetzt, dass ein Skillset definiert ist.

Diagram of indexer stages.

Phase 1: Dokumentriss

Dokumententschlüsselung ist der Vorgang des Öffnens von Dateien und des Extrahierens von Inhalt. Textbasierte Inhalte können aus Dateien in einem Dienst, Zeilen in einer Tabelle oder Elementen in Containern oder Sammlungen extrahiert werden. Wenn Sie einem Indexer ein Skillset und Bildanalyseskills hinzufügen, kann die Dokumententschlüsselung auch Bilder extrahieren und zur Verarbeitung in die Warteschlange einreihen.

Abhängig von der Datenquelle führt der Indexer verschiedene Vorgänge aus, um potenziell indizierbare Inhalte zu extrahieren:

  • Wenn das Dokument eine Datei mit eingebetteten Bildern ist, wie z. B. eine PDF, extrahiert der Indexer Text, Bilder und Metadaten. Indexer können Dateien aus Azure Blob Storage, Azure Data Lake Storage Gen2 und SharePoint öffnen.

  • Wenn es sich bei dem Dokument um einen Datensatz in Azure SQL handelt, extrahiert der Indexer die nicht binären Inhalte aus jedem Feld in jedem Datensatz.

  • Handelt es sich bei dem Dokument um einen Datensatz in Azure Cosmos DB, extrahiert der Indexer die nicht binären Inhalte aus Feldern und Unterfeldern des Azure Cosmos DB-Dokuments.

Phase 2: Feldzuordnungen

Ein Indexer extrahiert Text aus einem Quellfeld und sendet ihn an ein Zielfeld in einem Index oder Wissensspeicher. Wenn Feldnamen und -typen übereinstimmen, ist der Pfad klar. Möglicherweise möchten Sie aber unterschiedliche Namen oder Typen in der Ausgabe, in welchem Fall Sie dem Indexer mitteilen müssen, wie das Feld zugeordnet werden soll.

Um Feldzuordnungen anzugeben,geben Sie die Quell- und Zielfelder in die Indexerdefinition ein.

Dieser Schritt erfolgt nach der Dokumententschlüsselung, aber vor Transformationen, wenn der Indexer aus den Quelldokumenten liest. Wenn Sie eine Feldzuordnung definieren, wird der Wert des Quellfelds unverändert an das Zielfeld gesendet.

Phase 3: Skillset-Ausführung

Skillset-Ausführung ist ein optionaler Schritt, der die integrierte oder benutzerdefinierte KI-Verarbeitung aufruft. Skillsets können optische Zeichenerkennung (OCR) oder andere Formen der Bildanalyse hinzufügen, wenn der Inhalt binär ist. Darüber hinaus können Skillsets natürliche Sprachverarbeitung hinzufügen. Beispielsweise können Sie Textübersetzung oder Schlüsselbegriffserkennung hinzufügen.

Wie auch immer die Transformation aussieht, die Skillset-Ausführung ist der Zeitpunkt, an dem eine Anreicherung erfolgt. Wenn ein Indexer eine Pipeline ist, können Sie sich einen Skillset als „Pipeline innerhalb der Pipeline“ vorstellen.

Phase 4: Ausgabefeldzuordnungen

Wenn Sie ein Skillset einbeziehen, müssen Sie Ausgabefeldzuordnungen in der Indexerdefinition angeben. Die Ausgabe eines Skillsets wird intern als Struktur manifestiert, die als angereichertes Dokumentbezeichnet wird. Mithilfe von Ausgabefeldzuordnungen können Sie auswählen, welche Teile dieser Struktur Feldern in Ihrem Index zugeordnet werden sollen.

Trotz der Ähnlichkeit bei Namen erstellen Ausgabefeldzuordnungen und Feldzuordnungen Zuordnungen aus verschiedenen Quellen. Feldzuordnungen ordnen den Inhalt des Quellfelds einem Zielfeld in einem Suchindex zu. Ausgabefeld-Zuordnungen ordnen den Inhalt eines internen angereicherten Dokuments (Skill-Outputs) den Zielfeldern im Index zu. Anders als bei Feldzuordnungen, die als optional gelten, wird für jeden transformierten Inhalt, der Teil des Indexes sein soll, eine Ausgabefeldzuordnung benötigt.

Die nächste Abbildung zeigt eine Beispieldarstellung einer Indexer-Debugsitzungder Indexerphasen: Dokumententschlüsselung, Feldzuordnungen, Skillset-Ausführung und Ausgabefeldzuordnungen.

Screenshot of a sample debug session.

Grundlegender -Workflow

Indexer können Features bereitstellen, die für die Datenquelle eindeutig sind. In dieser Hinsicht variieren einige Aspekte von Indexern oder der Datenquellenkonfiguration nach Indexertyp. Für alle Indexer werden aber die gleiche grundlegende Zusammenstellung und die gleichen Anforderungen verwendet. Die Schritte, die für alle Indexer gelten, sind unten beschrieben.

Schritt 1: Erstellen einer Datenquelle

Indexer benötigen ein Datenquellenobjekt mit einer Verbindungszeichenfolge und ggf. Anmeldeinformationen. Datenquellen sind unabhängige Objekte. Mehrere Indexer können dasselbe Datenquellenobjekt verwenden, um mehrere Indizes gleichzeitig zu laden.

Sie können eine Datenquelle mit einem der folgenden Ansätze erstellen:

Schritt 2: Erstellen eines Index

Mit einem Indexer werden einige Aufgaben in Bezug auf die Datenerfassung automatisiert, aber das Erstellen eines Index gehört im Allgemeinen nicht dazu. Als Voraussetzung müssen Sie über einen vordefinierten Index verfügen, der entsprechende Zielfelder für alle Quellfelder in Ihrer externen Datenquelle enthält. Felder müssen nach Name und Datentyp übereinstimmen. Andernfalls können Sie Feldzuordnungen definieren, um die Zuordnung einzurichten.

Weitere Informationen finden Sie unter Erstellen eines Index.

Schritt 3: Erstellen und Ausführen (oder Planen) des Indexers

Eine Indexerdefinition besteht aus Eigenschaften, die den Indexer eindeutig identifizieren, angeben, welche Datenquelle und welcher Index verwendet werden sollen, und weitere Konfigurationsoptionen mit Einfluss auf das Laufzeitverhalten bieten, etwa ob der Indexer bei Bedarf oder nach einem Zeitplan ausgeführt wird.

Fehler oder Warnungen zu Datenzugriffs- oder Skillsetprüfungen treten während der Indexerausführung auf. Bis zum Start der Indexerausführung sind abhängige Objekte wie Datenquellen, Indizes und Skillsets im Suchdienst inaktiv.

Weitere Informationen finden Sie unter Erstellen eines Indexers

Sie können einen Indexer nach der ersten Ausführung bei Bedarf erneut ausführen oder einen Zeitplan einrichten.

Sie können den Indexerstatus im Portal oder über die API zum Abrufen des Indexer-Status überwachen. Sie sollten auch Abfragen für den Index ausführen, um zu überprüfen, ob das Ergebnis Ihren Erwartungen entspricht.

Indexer verfügen nicht über dedizierte Verarbeitungsressourcen. Daher kann es sein, dass der Status des Indexers als im Leerlauf angezeigt wird, ehe er ausgeführt wird (abhängig von anderen Aufträgen in der Warteschlange), und dass Laufzeiten nicht vorhersehbar sind. Auch andere Faktoren bestimmen die Leistung des Indexers, wie z. B. Größe und Komplexität des Dokuments und Bildanalyse.

Nächste Schritte

Nach dieser Einführung können Sie sich als Nächstes mit Indexereigenschaften und -parametern sowie mit der Planung und Überwachung von Indexern vertraut machen. Alternativ können Sie zur Liste mit den unterstützten Datenquellen zurückkehren und sich ausführlicher über eine bestimmte Quelle informieren.