Durchsuchen von Azure Blob Storage-Inhalten

Die Suche in den verschiedenen Inhaltstypen, die in Azure Blob Storage gespeichert sind, kann ein schwieriges Problem sein, aber Azure AI Search bietet eine umfassende Integration auf der Inhaltsebene, das Extrahieren und Ableiten von Textinformationen, die dann in einem Suchindex abgefragt werden können.

In diesem Artikel wird der grundlegende Workflow für die Extraktion von Inhalt und Metadaten aus Blobs sowie das Senden derselben an einen Suchindex in Azure AI Search erläutert. Der resultierende Index kann über die Volltextsuche abgefragt werden. Optional können Sie verarbeitete Blobinhalte für Nicht-Suchszenarien an einen Wissensspeicher senden.

Hinweis

Sie sind bereits mit dem Workflow und der Struktur vertraut? Konfigurieren eines Blobindexers ist Ihr nächster Schritt.

Bedeutung des Hinzufügens der Volltextsuche zu Blobdaten

Azure KI-Suche ist ein Suchdienst, der die Indizierung und Abfrage von Workloads mithilfe von benutzerdefinierten Indizes unterstützt, die Ihre privaten durchsuchbaren, in der Cloud gehosteten Inhalte enthalten. Die Zusammenstellung Ihrer durchsuchbaren Inhalte mit dem Abfragemodul in der Cloud ist aus Leistungsgründen erforderlich, damit Ergebnisse mit einer Geschwindigkeit zurückgegeben werden, die Benutzer von Suchabfragen erwarten.

Azure AI Search und Azure Blob Storage sind auf Indexierungsebene integriert. Dabei werden Ihre Blobinhalte als Suchdokumente importiert, die in invertierte Indizes und andere Suchstrukturen indiziert werden, die Textabfragen in freier Form und Filterausdrücke unterstützen. Da Ihre Blobinhalte in einem Suchindex indiziert werden, können Sie die gesamte Bandbreite der Abfragefeatures von Azure AI Search nutzen, um Informationen in Ihrem Blobinhalt zu finden.

Als Eingaben fungieren Ihre Blobs in einem einzelnen Container in Azure Blob Storage. Blobs können aus nahezu beliebigen Arten von Textdaten bestehen. Wenn Ihre Blobs Bilder enthalten, können Sie KI-Anreicherung hinzufügen, um Text und Merkmale aus Bildern zu erstellen und zu extrahieren.

Die Ausgabe ist stets ein Azure AI Search-Index, der für schnelles Suchen, Abrufen und Erkunden von Texten in Clientanwendungen genutzt wird. Dazwischen befindet sich die Architektur der Indizierungspipeline selbst. Die Pipeline basiert auf der Indexer-Funktion, die im weiteren Verlauf dieses Artikels erläutert wird.

Nach Erstellen und Auffüllen des Indexes existiert er unabhängig von Ihrem Blobcontainer. Sie können jedoch Indizierungsvorgänge noch einmal ausführen, um Ihren Index auf Grundlage von geänderten Dokumenten zu aktualisieren. Zeitstempelinformationen zu einzelnen Blobs werden zur Erkennung von Änderungen verwendet. Sie können sich entweder für die geplante Ausführung oder die bedarfsgesteuerte Indizierung als Aktualisierungsmechanismus entscheiden.

In einer Blobsuchlösung verwendete Ressourcen

Sie benötigen Azure AI Search, Azure Blob Storage und einen Client. Azure AI Search ist in der Regel eine von mehreren Komponenten in einer Lösung, bei der Ihr Anwendungscode Abfrage-API-Anforderungen ausgibt und die Antwort verarbeitet. Sie können auch Anwendungscode schreiben, um die Indizierung zu verarbeiten, obgleich es für Proof of Concept-Tests und Ad-hoc-Aufgaben üblich ist, das Azure-Portal als Suchclient zu verwenden.

In Blob Storage benötigen Sie einen Container, der Quellinhalte bereitstellt. Sie können Kriterien für den Ein- und Ausschluss von Dateien festlegen und angeben, welche Teile eines Blobs in Azure AI Search indiziert werden.

Sie können direkt auf der Portalseite des Speicherkontos beginnen.

  1. Wählen Sie auf der linken Navigationsseite unter Datenverwaltung die Option Azure KI-Suche aus, um einen Suchdienst auszuwählen oder zu erstellen.

  2. Führen Sie die Schritte im Assistenten aus, um durchsuchbare Inhalte aus Ihren Blobs zu extrahieren und optional zu erstellen. Der Workflow ist der Assistent Daten importieren. Der Workflow erstellt einen Indexer, eine Datenquelle, einen Index und ein Skillset für Ihren Azure KI-Suchdienst.

    Screenshot des Azure KI-Suche-Assistenten auf der Seite des Azure Storage-Portals.

  3. Verwenden Sie den Such-Explorer auf der Seite des Suchportals, um Ihre Inhalte abzufragen.

Der Assistent ist der beste Ausgangspunkt, aber Sie werden flexiblere Optionen entdecken, wenn Sie einen Blobindexer selbst konfigurieren. Sie können einen REST-Clientverwenden. Tutorial: Halbstrukturierte Daten (JSON-Blobs) indizieren und durchsuchen führt Sie durch die Schritte zum Aufruf der REST-API.

Indizieren von Blobs

Standardmäßig werden die meisten Blobs als einzelnes Suchdokument im Index indiziert, einschließlich Blobs mit strukturiertem Inhalt wie JSON oder CSV, die als einzelner Textabschnitt indiziert werden. Wenn die JSON- oder CSV-Dokumente eine interne Struktur (Trennzeichen) haben, können Sie Analysemodi so zuweisen, dass für jede Zeile oder jedes Element einzelne Suchdokumente generiert werden:

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.

Hinweis

Azure AI Search legt abhängig vom Tarif Indexergrenzwerte für die extrahierte Textmenge fest. In der Indexerstatusantwort wird eine Warnung angezeigt, wenn Dokumente gekürzt werden.

Verwenden eines Blobindexers für die Inhaltsextraktion

Ein Indexer ist ein datenquellenabhängiger Subdienst in Azure AI Search, der eine interne Logik für das Datensampling, das Lesen von Metadaten, das Abrufen von Daten und das Serialisieren von Daten aus nativen Formaten in JSON-Dokumente zum anschließenden Import aufweist.

Blobs in Azure Storage werden mithilfe des Blobindexers indiziert. Sie können diesen Indexer aufrufen, indem Sie den Befehl der Azure KI-Suche in Azure Storage, den Datenimport-Assistenten, eine REST-API oder das .NET SDK verwenden. Im Code verwenden Sie diesen Indexer, indem Sie den Typ festlegen und Verbindungsinformationen bereitstellen, die ein Azure-Speicherkonto zusammen mit einem Blobcontainer enthalten. Sie können Ihre Blobs unterteilen, indem Sie ein virtuelles Verzeichnis erstellen, das Sie dann als Parameter übergeben können, oder indem Sie nach einer Dateityperweiterung filtern.

Ein Indexer „entschlüsselt das Dokument“ und öffnet ein Blob, um den Inhalt zu untersuchen. Nach dem Herstellen einer Verbindung mit der Datenquelle ist dies der erste Schritt in der Pipeline. Bei Blobdaten werden an dieser Stelle PDF-Dateien, Office-Dokumente und andere Inhaltstypen erkannt. Die Dokumententschlüsselung mit Textextraktion erfolgt gebührenfrei. Wenn Ihre Blobs Bildinhalte enthalten, werden Bilder ignoriert, es sei denn, Sie fügen KI-Erweiterungen hinzu. Die Standardindizierung gilt nur für Textinhalte.

Der Azure-Blobindexer verfügt über Konfigurationsparameter und unterstützt die Nachverfolgung von Änderungen, wenn die zugrunde liegenden Daten genügend Informationen liefern. Weitere Informationen zur Kernfunktionalität finden Sie unter Indizieren von Daten von Azure Blob Storage.

Unterstützte Zugriffsebenen

Die Blob Storage-Zugriffsebenen lauten „Heiß“, „Kalt“ und „Archiv“. Indexer können nur auf die heiße und kalte Ebene zugreifen.

Unterstützte Inhaltstypen

Indem Sie einen Blobindexer auf einen Container anwenden, können Sie mit einer einzigen Abfrage aus den folgenden Inhaltstypen Text und Metadaten extrahieren:

Steuern, welche Blobs indiziert werden

Sie können steuern, welche Blobs indiziert und welche übersprungen werden, indem Sie den Dateityp des Blobs festlegen oder Eigenschaften für den Blob selbst so festlegen, dass der Indexer sie überspringt.

Schließen Sie bestimmte Dateierweiterungen ein, indem Sie für "indexedFileNameExtensions" eine durch Komma getrennte Liste von Dateierweiterungen (mit einem führenden Punkt) festlegen. Schließen Sie bestimmte Dateierweiterungen aus, indem Sie für "excludedFileNameExtensions" die Erweiterungen festlegen, die übersprungen werden sollen. Wenn dieselbe Erweiterung in beiden Listen vorhanden ist, wird sie von der Indizierung ausgeschlossen.

PUT /indexers/[indexer name]?api-version=2023-11-01
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

Hinzufügen von Metadaten zum Überspringen des Blobs

Die Konfigurationsparameter des Indexers gelten für alle Blobs im Container oder Ordner. Mitunter möchten Sie möglicherweise steuern, wie einzelne Blobs indiziert werden.

Dazu können Sie Blobs in Blob Storage die folgenden Metadateneigenschaften und -werte hinzufügen. Wenn der Indexer auf diese Eigenschaften 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" Dies entspricht der oben beschriebenen Einstellung "dataToExtract" : "allMetadata", die auf ein bestimmtes Blob festgelegt ist.

Indizieren der Metadaten von Blobs

Das Indizieren von benutzerdefinierten Metadaten sowie von Systemeigenschaften für jedes Blob ist ein häufig auftretendes Szenario, in dem Sie Blobs jedes Inhaltstyps unkompliziert durchsehen können. Auf diese Weise werden die Informationen für alle Blobs unabhängig vom Dokumenttyp indiziert und in einem Index in Ihrem Suchdienst gespeichert. Mit dem neuen Index können Sie dann den gesamten Blob Storage-Inhalt sortieren und filtern sowie Facetten bilden.

Hinweis

Blobindextags werden vom Blob Storage-Dienst nativ indiziert und für Abfragen verfügbar gemacht. Wenn die Schlüssel-Wert-Attribute des Blob Indizierungs- und Filterungsfunktionen erfordern, sollten Blobindextags anstelle von Metadaten genutzt werden.

Weitere Informationen über den Blobindex finden Sie unter Verwalten und Suchen von Daten in Azure Blob Storage mit dem Blobindex.

Durchsuchen von Blobinhalten in einem Suchindex

Die Ausgabe einer Indizierung ist ein Suchindex, der für die interaktive Untersuchung mithilfe von Freitextabfragen und gefilterten Abfragen in einer Client-App verwendet wird. Für die erste Erkundung und Überprüfung von Inhalten empfehlen wir, im Portal im Suchexplorer die Dokumentstruktur zu untersuchen. Im Such-Explorer können Sie Folgendes verwenden:

Eine dauerhaftere Lösung besteht darin, Abfrageeingaben zu sammeln und die Antwort als Suchergebnisse in einer Clientanwendung darzustellen. Im folgenden C#-Tutorial wird erläutert, wie Sie eine Suchanwendung erstellen: Hinzufügen der Suche zu einer ASP.NET Core(MVC)-Anwendung.

Nächste Schritte