Indizieren von Daten aus OneLake-Dateien und -Verknüpfungen

Note

Azure KI-Suche ist über das Azure Portal, REST-APIs und Azure SDKs verfügbar. Es unterstützt auch Foundry IQ, die verwaltete Wissensschicht, die Unternehmensinhalte in wiederverwendbare, berechtigungsfähige Wissensbasen für Agenten im Microsoft Foundry-Portal transformiert.

Wichtig

Diese Features und Funktionen unterstützen Verbindungen mit anderen Microsoft-Dienste und Drittanbieterdiensten. Die Nutzung dieser Dienste unterliegt den jeweiligen Bestimmungen und kann dazu führen, dass Daten außerhalb der Azure-Compliancegrenze verarbeitet oder gespeichert werden und dass Daten in die Azure-Compliancegrenze fließen.

Es liegt in Ihrer Verantwortung, zu verwalten, ob Ihre Daten außerhalb der Compliance- und geografischen Grenzen Ihrer Organisation und alle damit verbundenen Auswirkungen fließen und dass entsprechende Berechtigungen, Grenzen und Genehmigungen bereitgestellt werden.

Sie sind dafür verantwortlich, Anwendungen, die Sie im Kontext Ihrer spezifischen Anwendungsfälle erstellen, sorgfältig zu überprüfen und zu testen und alle geeigneten Entscheidungen und Anpassungen zu treffen. Dazu gehört die Implementierung ihrer eigenen verantwortungsvollen KI-Entschärfungen, wie Metaprompts, Inhaltsfilter oder andere Sicherheitssysteme, und sicherzustellen, dass Ihre Anwendungen angemessene Qualität, Zuverlässigkeit, Sicherheit und Vertrauenswürdigkeitsstandards erfüllen. Weitere Informationen finden Sie im Azure KI-Suche Transparenzhinweis.

In diesem Artikel erfahren Sie, wie Sie einen OneLake-Dateiindexer zum Extrahieren durchsuchbarer Daten und Metadatendaten aus einem lakehouse über Microsoft OneLake konfigurieren.

Zum Konfigurieren und Ausführen des Indexers können Sie Folgendes verwenden:

In diesem Artikel werden die REST-APIs verwendet, um die einzelnen Schritte zu veranschaulichen.

Voraussetzungen

Einschränkungen

  • Parkettdateitypen (einschließlich Delta-Parkett) werden derzeit nicht unterstützt.

  • Das Löschen von Dateien wird für Amazon S3- und Google Cloud Storage-Verknüpfungen nicht unterstützt.

  • Dieser Indexer unterstützt den Speicherort für den Tabelleninhalt im OneLake-Arbeitsbereich nicht.

  • Dieser Indexer unterstützt keine SQL-Abfragen, aber die abfrage, die in der Datenquellenkonfiguration verwendet wird, besteht ausschließlich darin, optional den Ordner oder die Verknüpfung zum Zugriff hinzuzufügen.

  • Es gibt keine Unterstützung für das Aufnehmen von Dateien aus dem Arbeitsbereich "Mein Arbeitsbereich " in OneLake, da dies ein persönliches Repository pro Benutzer ist.

  • Das Indizieren von Dateien aus Fabric Objekten mit Vertraulichkeitsbezeichnungen, z. B. Lakehouses, wird nicht unterstützt. Wenn Vertraulichkeitsbezeichnungen jedoch direkt auf einzelne Dokumente angewendet werden, wird die Aufnahme geschützter Inhalte und zugehöriger Bezeichnungen unterstützt. In diesen Fällen kann Azure KI-Suche durch seine Integration mit Purview Vertraulichkeitsbezeichnungen und den Inhalt gekennzeichneter Dokumente extrahieren und berücksichtigen.

  • Rollenbasierte Arbeitsbereichsberechtigungen in Microsoft OneLake können den Indizierungszugriff auf Dateien beeinträchtigen. Stellen Sie sicher, dass der Azure KI-Suche Dienstprinzipal (verwaltete Identität) über ausreichende Berechtigungen für die Dateien verfügt, auf die Sie im Zielarbeitsbereich Microsoft Fabric zugreifen möchten.

Unterstützte Aufgaben

Sie können diesen Indexer für die folgenden Aufgaben verwenden:

  • Datenindizierung und inkrementelle Indizierung: Der Indexer kann Dateien und zugeordnete Metadaten aus Datenpfaden in einem Seehaus indizieren. Es erkennt neue und aktualisierte Dateien und Metadaten durch integrierte Änderungserkennung. Sie können die Datenaktualisierung nach einem Zeitplan oder bei Bedarf konfigurieren.
  • Löscherkennung: Der Indexer kann Löschungen über benutzerdefinierte Metadaten für die meisten Dateien und Verknüpfungen erkennen. Dies erfordert das Hinzufügen von Metadaten zu Dateien, um zu kennzeichnen, dass sie "vorläufig gelöscht" wurden, wodurch die Entfernung aus dem Suchindex ermöglicht wird. Derzeit ist es nicht möglich, Löschungen in Google Cloud Storage- oder Amazon S3-Verknüpfungsdateien zu erkennen, da benutzerdefinierte Metadaten für diese Datenquellen nicht unterstützt werden.
  • Angewandte KI-Anreicherung durch Skillsets:Skillsets werden vollständig vom OneLake-Dateiindexer unterstützt. Dazu gehören wichtige Features wie die integrierte Vektorisierung , die Datenabschnitte und Einbettungsschritte hinzufügt.
  • Analysemodi: Der Indexer unterstützt JSON-Analysemodi , wenn Sie JSON-Arrays oder Zeilen in einzelne Suchdokumente analysieren möchten. Außerdem wird der Markdown-Analysemodus unterstützt.
  • Kompatibilität mit anderen Features: Der OneLake-Indexer wurde entwickelt, um nahtlos mit anderen Indexerfeatures wie Debugsitzungen, Indexercache für inkrementelle Anreicherungen und Wissensspeicher zu arbeiten.

Unterstützte Dokumentformate

Der OneLake-Dateiindexer 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)
  • Markdown
  • Microsoft Office Formate: DOCX/DOC/DOCM, XLSX/XLSM, PPTX/PPT/PPTM, MSG (Outlook E-Mails), XML (sowohl 2003 als auch 2006 WORD XML)
  • Open Document formats: ODT, ODS, ODP
  • PDF
  • Nur-Text-Dateien (siehe auch "Nur-Text indizieren")
  • RTF
  • XML
  • ZIP

Unterstützte Tastenkombinationen

Die folgenden OneLake-Tastenkombinationen werden vom OneLake-Dateiindexer unterstützt:

Wichtig

Wenn keine der Voraussetzungen erfüllt oder ein Vorgang versucht wird, der von den dokumentierten Einschränkungen abgedeckt wird, tritt beim Auflisten von Elementen im Seehaus ein Fehler auf.

Vorbereiten von Daten für die Indizierung

Bevor Sie die Indizierung einrichten, überprüfen Sie Ihre Quelldaten, um festzustellen, ob Änderungen an Ihren Daten im Seehaus vorgenommen werden sollen. Ein Indexer kann Inhalte jeweils aus einem Container indizieren. Standardmäßig werden alle Dateien im Container verarbeitet. Sie haben mehrere Optionen für eine selektivere Verarbeitung:

  • Platzieren Sie Dateien in einem virtuellen Ordner. Die Datenquellendefinition eines Indexers enthält einen „query“-Parameter, der ein Lakehouse-Unterordner oder eine Lakehouse-Verknüpfung sein kann. Wenn dieser Wert angegeben ist, werden nur die Dateien im Unterordner oder der Verknüpfung innerhalb des Lakehouse indiziert.

  • Einschließen oder Ausschließen von Dateien nach Dateityp. Anhand der Liste der unterstützten Dokumentformate können Sie ermitteln, welche Dateien ausgeschlossen werden sollen. Sie können z. B. Bild- oder Audiodateien ausschließen, die keinen durchsuchbaren Text bereitstellen. Diese Funktion wird über Konfigurationseinstellungen im Indexer gesteuert.

  • Beliebige Dateien einschließen oder ausschließen. Wenn Sie eine bestimmte Datei aus irgendeinem Grund überspringen möchten, können Sie Metadateneigenschaften und -werte zu Dateien in Ihrem Lakehouse hinzufügen. Wenn ein Indexer auf diese Eigenschaft trifft, überspringt er die Datei oder deren Inhalt in der Indizierungsausführung.

Dateieinschluss und Ausschluss werden im Konfigurationsschritt der Indexer behandelt. Wenn Sie keine Kriterien festlegen, meldet der Indexer eine nicht berechtigte Datei als Fehler und wechselt fort. Wenn genügend Fehler auftreten, kann die Verarbeitung beendet werden. Sie können die Fehlertoleranz in den Indexerkonfigurationseinstellungen angeben.

Ein Indexer erstellt in der Regel ein Suchdokument pro Datei, wobei der Textinhalt und die Metadaten als durchsuchbare Felder in einem Index erfasst werden. Wenn Dateien ganze Dateien sind, können Sie sie potenziell in mehrere Suchdokumente analysieren. Sie können beispielsweise Zeilen in einer CSV-Datei analysieren, um ein Suchdokument pro Zeile zu erstellen. Wenn Sie ein einzelnes Dokument in kleinere Passagen aufteilen müssen, um Daten zu vektorisieren, sollten Sie die integrierte Vektorisierung in Betracht ziehen.

Indizieren von Dateimetadaten

Dateimetadaten können auch indiziert werden, und das ist hilfreich, wenn Sie denken, dass eine der Standard- oder benutzerdefinierten Metadateneigenschaften in Filtern und Abfragen nützlich ist.

Vom Benutzer angegebene Metadateneigenschaften werden verbatim extrahiert. Um die Werte zu empfangen, müssen Sie das Feld im Suchindex des Typs Edm.Stringmit demselben Namen wie der Metadatenschlüssel des BLOB definieren. Wenn ein Blob beispielsweise einen Metadatenschlüssel Priority mit Dem Wert Highaufweist, sollten Sie ein Feld definieren, das in Ihrem Suchindex benannt Priority ist und mit dem Wert Highaufgefüllt wird.

Standarddateimetadateneigenschaften können wie unten aufgeführt in ähnlich benannte und typierte Felder extrahiert werden. Der OneLake-Dateienindexer erstellt automatisch interne Feldzuordnungen für diese Metadateneigenschaften, wobei der ursprüngliche Bindestrichname ("Metadatenspeichername") in einen unterstrichenen gleichwertigen Namen ("metadata_storage_name") konvertiert wird.

Sie müssen der Indexdefinition weiterhin die unterstrichenen Felder hinzufügen, aber Sie können Indexerfeldzuordnungen weglassen, da der Indexer die Zuordnung automatisch macht.

  • metadata_storage_name (Edm.String) – der Dateiname. Wenn Sie beispielsweise über eine Datei /mydatalake/my-folder/subfolder/resume.pdfverfügen, lautet resume.pdfder Wert dieses Felds .

  • metadata_storage_path (Edm.String) – der vollständige URI des Blobs, einschließlich des Speicherkontos. Zum Beispiel https://myaccount.blob.core.windows.net/my-container/my-folder/subfolder/resume.pdf

  • metadata_storage_content_type (Edm.String) – Inhaltstyp, wie durch den Code angegeben, den Sie zum Hochladen des BLOB verwendet haben. Beispiel: application/octet-stream.

  • metadata_storage_last_modified (Edm.DateTimeOffset) – Zeitstempel der letzten Änderung für das Blob. Azure KI-Suche verwendet diesen Zeitstempel, um geänderte Blobs zu identifizieren, um zu vermeiden, dass alles nach der anfänglichen Indizierung neu indiziert wird.

  • metadata_storage_size (Edm.Int64) – Blobgröße in Byte.

  • metadata_storage_content_md5 (Edm.String) – MD5-Hash des BLOB-Inhalts, falls verfügbar.

Schließlich können alle Metadateneigenschaften, die für das Dokumentformat der Dateien, die Sie indizieren, spezifisch sind, auch im Indexschema dargestellt werden. Weitere Informationen zu inhaltsspezifischen Metadaten finden Sie unter Inhaltsmetadateneigenschaften.

Es ist wichtig, darauf hinzuweisen, dass Sie keine Felder für alle oben genannten Eigenschaften in Ihrem Suchindex definieren müssen – erfassen Sie einfach die Eigenschaften, die Sie für Ihre Anwendung benötigen.

Berechtigungen gewähren

Der OneLake-Indexer verwendet tokenauthentifizierung und rollenbasierten Zugriff für Verbindungen mit OneLake. Berechtigungen werden in OneLake zugewiesen. Es gibt keine Berechtigungsanforderungen für die physischen Datenspeicher hinter den Verknüpfungen. Wenn Sie z. B. von AWS indiziert werden, müssen Sie in AWS keine Suchdienstberechtigungen erteilen.

Die mindeste Rollenzuweisung für Ihre Suchdienstidentität ist "Mitwirkender".

  1. Konfigurieren Sie ein System oder eine vom Benutzer verwaltete Identität für Ihren KI-Suchdienst .

    Der folgende Screenshot zeigt eine vom System verwaltete Identität für einen Suchdienst namens "onelake-demo".

    Screenshot mit einer Suchdienstsystemidentität im Azure portal.

    Dieser Screenshot zeigt eine vom Benutzer verwaltete Identität für denselben Suchdienst.

    Screenshot mit einer vom Suchdienst zugewiesenen verwalteten Identität im Azure portal.

  2. Erteilen Sie Zugriffsbefugnis auf den Suchdienst für den Fabric-Arbeitsbereich. Der Suchdienst führt die Verbindung im Namen des Indexers aus.

    Wenn Sie eine vom System zugewiesene verwaltete Identität verwenden, suchen Sie nach dem Namen des AI-Suchdiensts. Suchen Sie für eine vom Benutzer zugewiesene verwaltete Identität nach dem Namen der Identitätsressource.

    Der folgende Screenshot zeigt eine Mitwirkender-Rollen-Zuweisung mithilfe einer vom System verwalteten Identität.

    Screenshot: Zuweisung der Rolle „Mitwirkender“ zur Systemidentität eines Suchdiensts im Azure-Portal.

    Dieser Screenshot zeigt eine Zuweisung der Contributor-Rolle unter Verwendung einer benutzerdefinierten verwalteten Identität.

    Screenshot: Zuweisung der Rolle „Mitwirkender“ zur benutzerseitig zugewiesenen verwalteten Identität eines Suchdiensts im Azure-Portal

Wenn Ihr Fabric-Arbeitsbereich mit einem Private-Link gesichert ist kann Azure KI-Suche nicht über das öffentliche Internet auf Ihre Lakehouse-Daten zugreifen, und Sie können den Indexer oder die erforderlichen Abhängigkeiten wie die Datenquelle nicht konfigurieren. Um den Zugriff zu aktivieren, müssen Sie einen shared private Link zwischen Azure KI-Suche und Ihrem Fabric Arbeitsbereich konfigurieren.

Definieren der Datenquelle

Eine Datenquelle wird als unabhängige Ressource definiert, sodass sie von mehreren Indexern verwendet werden kann.

  1. Verwenden Sie die REST-API für die Datenquelle erstellen oder aktualisieren , um ihre Definition festzulegen. Dies sind die wichtigsten Schritte der Definition.

  2. "type" auf "onelake" setzen (erforderlich).

  3. Erhalten Sie die GUID des Microsoft Fabric-Arbeitsbereichs und die GUID des Lakehouse:

    • Öffnen Sie in Power BI das Seehaus, aus dem Sie Daten importieren möchten. Beachten Sie die Lakehouse-URL im Browser. Es sollte ähnlich aussehen wie in diesem Beispiel: "https://msit.powerbi.com/groups/00000000-0000-0000-0000-000000000000/lakehouses/11111111-1111-1111-1111-111111111111". Die URL enthält sowohl die Arbeitsbereich-GUID als auch die Lakehouse-GUID. Wenn der Fabric-Arbeitsbereich mit einem privaten Link gesichert ist, beginnt die URL mit "https://{FabricWorkspaceGuid}.z{xy}.blob.fabric.microsoft.com".

    • Kopieren Sie die Arbeitsbereichs-GUID, die rechts von "Gruppen" in der URL aufgeführt ist. In diesem Beispiel wäre es 000000000-0000-0000-0000-0000000000000. Erstellen Sie in der REST-Datei eine Umgebungsvariable für {FabricWorkspaceGuid} und legen Sie diese auf die Arbeitsbereichs-GUID fest. Wenn Ihr Arbeitsbereich einen privaten Link verwendet, wird die Arbeitsbereichs-GUID an einer anderen Position in der URL angezeigt. Achten Sie darauf, auf den richtigen Teil der URL basierend auf Ihrem Setup zu verweisen.

    Screenshot der GUID des Fabric Arbeitsbereichs im Azure portal.

    • Kopieren Sie die Lakehouse-GUID, die direkt nach "Lakehouses" in der URL aufgeführt ist. In diesem Beispiel wäre es 11111111-1111-1111-1111-111111111111. Erstellen Sie in Ihrer REST-Datei eine Umgebungsvariable für {LakehouseGuid}, legen Sie diese auf die GUID des Lakehouse fest.

      Screenshot der Lakehouse GUID im Azure portal.

  4. Legen Sie "credentials" auf die GUID des Microsoft Fabric Arbeitsbereichs fest, indem Sie {FabricWorkspaceGuid} durch den Wert ersetzen, den Sie im vorherigen Schritt kopiert haben. Dies ist der OneLake für den Zugriff mit der verwalteten Identität, die Sie später in diesem Handbuch einrichten.

    "credentials": {  
    "connectionString": "ResourceId={FabricWorkspaceGuid}"  
    }
    

Für Ihre Konfiguration mit freigegebener privater Link richten Sie die verwalteten Identitäten mithilfe der folgenden Verbindungszeichenfolge ein, die sich von der Konfiguration mit Internetkommunikation unterscheidet. Beachten Sie, dass nicht nur die URL anders ist, sondern auch WorkspaceEndpoint anstelle von ResourceId verwendet wird. Berücksichtigen Sie dies bei der Konfiguration der vom System verwalteten Identitäts- oder vom Benutzer verwalteten Identitätssetups.

 "credentials": {  
 "connectionString": "WorkspaceEndpoint=https://{FabricWorkspaceGuid}.z{xy}.blob.fabric.microsoft.com"
 }
  1. Legen Sie "container.name" auf die Lakehouse-GUID fest und ersetzen Sie {LakehouseGuid} durch den Wert, den Sie im vorherigen Schritt kopiert haben. Verwenden Sie "query", um optional einen Lakehouse-Unterordner oder eine Verknüpfung anzugeben.

       "container": {  
         "name": "{LakehouseGuid}",  
         "query": "{optionalLakehouseFolderOrShortcut}"  
       }
    
  2. Legen Sie die Authentifizierungsmethode mithilfe der vom Benutzer zugewiesenen verwalteten Identität fest, oder fahren Sie mit dem nächsten Schritt für die vom System verwaltete Identität fort.

    {    
      "name": "{dataSourceName}",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId={FabricWorkspaceGuid}"  
      },  
      "container": {  
        "name": "{LakehouseGuid}",  
        "query": "{optionalLakehouseFolderOrShortcut}"  
      },  
      "identity": {  
        "@odata.type": "Microsoft.Azure.Search.DataUserAssignedIdentity",  
        "userAssignedIdentity": "{userAssignedManagedIdentity}"  
      }  
    }
    

    Der userAssignedIdentity-Wert kann gefunden werden, indem man auf die {userAssignedManagedIdentity}-Ressource zugreift. Unter "Eigenschaften" heißt er Id.

    Screenshot der Eigenschaft

    Beispiel:

    {    
      "name": "mydatasource",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId=a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"  
      },  
      "container": {  
        "name": "11111111-1111-1111-1111-111111111111",  
        "query": "folder_name"  
      },  
      "identity": {  
        "@odata.type": "Microsoft.Azure.Search.DataUserAssignedIdentity",  
        "userAssignedIdentity": "/subscriptions/333333-3333-3333-3333-33333333/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/demo-mi"  
      }  
    }
    
  3. Verwenden Sie optional stattdessen eine vom System zugewiesene verwaltete Identität. Die "Identität" wird aus der Definition entfernt, wenn die vom System zugewiesene verwaltete Identität verwendet wird.

    {    
      "name": "{dataSourceName}",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId={FabricWorkspaceGuid}"  
      },  
      "container": {  
        "name": "{LakehouseGuid}",  
        "query": "{optionalLakehouseFolderOrShortcut}"  
      }  
    }
    

    Beispiel:

    {    
      "name": "mydatasource",  
      "description": "description",  
      "type": "onelake",  
      "credentials": {  
        "connectionString": "ResourceId=a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"  
      },  
      "container": {  
        "name": "11111111-1111-1111-1111-111111111111",  
        "query": "folder_name"  
      }
    } 
    

Erkennen von Löschungen über benutzerdefinierte Metadaten

Die OneLake-Dateiindexer-Datenquellendefinition kann eine Richtlinie zum vorläufigen Löschen enthalten, wenn der Indexer ein Suchdokument löschen soll, wenn das Quelldokument zum Löschen gekennzeichnet ist.

Verwenden Sie zum Aktivieren des automatischen Löschens von Dateien benutzerdefinierte Metadaten, um anzugeben, ob ein Suchdokument aus dem Index entfernt werden soll.

Workflow erfordert drei separate Aktionen:

  • "Vorläufiges Löschen" der Datei in OneLake
  • Indexer löscht das Suchdokument im Index.
  • Endgültiges Löschen der in OneLake

"Vorläufiges Löschen" teilt dem Indexer mit, was zu tun ist (löschen Sie das Suchdokument). Wenn Sie die physische Datei zuerst in OneLake löschen, gibt es nichts für den Indexer zu lesen, und das entsprechende Suchdokument im Index ist verwaist.

Es gibt Schritte, die sie sowohl in OneLake als auch in Azure KI-Suche ausführen müssen, es gibt jedoch keine anderen Featureabhängigkeiten.

  1. Fügen Sie in der Lakehouse-Datei ein benutzerdefiniertes Schlüssel-Wert-Paar für Metadaten hinzu, um anzugeben, dass sie zum Löschen gekennzeichnet ist. Sie können beispielsweise die Eigenschaft "IsDeleted" benennen, die auf "false" festgelegt ist. Wenn Sie die Datei löschen möchten, ändern Sie sie in "true".

    Screenshot einer Datei mit benutzerdefinierten Metadaten für IsDeleted.

  2. Bearbeiten Sie in Azure KI-Suche die Datenquellendefinition so, dass sie eine "dataDeletionDetectionPolicy"-Eigenschaft enthält. Die folgende Richtlinie berücksichtigt beispielsweise, dass eine Datei gelöscht wird, wenn sie über eine Metadateneigenschaft "IsDeleted" mit dem Wert "true" verfügt:

    PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2026-04-01
    {
        "name" : "onelake-datasource",
        "type" : "onelake",
         "credentials": {  
            "connectionString": "ResourceId={FabricWorkspaceGuid}"  
        },  
        "container": {  
            "name": "{LakehouseGuid}",  
            "query": "{optionalLakehouseFolderOrShortcut}"  
        },  
        "dataDeletionDetectionPolicy" : {
            "@odata.type" :"#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
            "softDeleteColumnName" : "IsDeleted",
            "softDeleteMarkerValue" : "true"
        }
    }
    

Nachdem der Indexer das Dokument aus dem Suchindex ausgeführt und gelöscht hat, können Sie die physische Datei im Datensee löschen.

Zu den wichtigsten Punkten gehören:

  • Das Planen einer Indizierungsausführung hilft beim Automatisieren dieses Prozesses. Wir empfehlen Zeitpläne für alle inkrementellen Indizierungsszenarien.

  • Wenn die Richtlinie zur Erkennung von Löschungen bei der ersten Ausführung des Indexers nicht festgelegt wurde, müssen Sie den Indexer zurücksetzen, damit die aktualisierte Konfiguration gelesen wird.

  • Beachten Sie, dass die Löschungserkennung, wie bereits erwähnt, aufgrund der Abhängigkeit von benutzerdefinierten Metadaten für Amazon S3- und Google Cloud Storage-Verknüpfungen nicht unterstützt wird.

Hinzufügen von Suchfeldern zu einem Index

Fügen Sie in einem Suchindex Felder hinzu, um den Inhalt und die Metadaten Ihrer Data Lake-Dateien in OneLake zu akzeptieren.

  1. Erstellen oder aktualisieren Sie einen Index , um Suchfelder zu definieren, die Dateiinhalte und Metadaten speichern:

    {
        "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 }     
        ]
    }
    
  2. Erstellen Sie ein Dokumentschlüsselfeld ("Schlüssel": true). Bei Dateiinhalten sind die besten Kandidaten Metadateneigenschaften.

    • 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_namekann nur verwendet werden, wenn Namen eindeutig sind. Wenn Sie dieses Feld als Schlüssel verwenden möchten, wechseln "key": true Sie zu dieser Felddefinition.

    • Eine benutzerdefinierte Metadateneigenschaft, die Sie Zu Ihren Dateien hinzufügen. Diese Option erfordert, dass der Dateiuploadprozess allen Blobs die Metadateneigenschaft hinzufügt. Da der Schlüssel eine erforderliche Eigenschaft ist, können alle Dateien, die einen Wert fehlen, nicht indiziert werden. Wenn Sie eine benutzerdefinierte Metadateneigenschaft als Schlüssel verwenden, vermeiden Sie änderungen an dieser Eigenschaft. Indexer fügen doppelte Dokumente für dieselbe Datei hinzu, wenn sich die Schlüsseleigenschaft ändert.

    Metadateneigenschaften enthalten häufig Zeichen wie / und -, die für Dokumentschlüssel ungültig sind. Da der Indexer über eine "base64EncodeKeys"-Eigenschaft verfügt (standardmäßig "true"), wird die Metadateneigenschaft automatisch codiert, ohne dass eine Konfiguration oder Feldzuordnung erforderlich ist.

  3. Fügen Sie ein "Content"-Feld hinzu, um extrahierten Text aus jeder Datei über die Eigenschaft "content" der Datei zu speichern. Sie müssen diesen Namen nicht verwenden. Auf diese Weise können Sie jedoch implizite Feldzuordnungen nutzen.

  4. Fügen Sie Felder für Standardmetadateneigenschaften hinzu. Der Indexer kann benutzerdefinierte Metadateneigenschaften, Standardmetadateneigenschaften und inhaltsspezifische Metadateneigenschaften lesen.

Konfigurieren und Ausführen des OneLake-Dateiindexers

Nachdem der Index und die Datenquelle erstellt wurden, 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 blob indiziert werden sollen.

  1. Erstellen oder aktualisieren Sie einen Indexer , indem Sie ihm einen Namen geben und auf die Datenquelle und den Zielindex verweisen:

    {
      "name" : "my-onelake-indexer",
      "dataSourceName" : "my-onelake-datasource",
      "targetIndexName" : "my-search-index",
      "parameters": {
          "batchSize": null,
          "maxFailedItems": null,
          "maxFailedItemsPerBatch": null,
          "base64EncodeKeys": null,
          "configuration": {
              "indexedFileNameExtensions" : ".pdf,.docx",
              "excludedFileNameExtensions" : ".png,.jpeg",
              "dataToExtract": "contentAndMetadata",
              "parsingMode": "default"
          }
      },
      "schedule" : { },
      "fieldMappings" : [ ]
    }
    
  2. Legen Sie "batchSize" fest, wenn der Standardwert (10 Dokumente) entweder die verfügbaren Ressourcen unterausnutzt oder überlastet. Standardbatchgrößen sind datenquellenspezifisch. Die Dateiindizierung legt die Batchgröße auf 10 Dokumente fest, um die durchschnittliche Dokumentgröße zu erkennen.

  3. Steuern Sie unter "Konfiguration", welche Dateien basierend auf dem Dateityp indiziert werden sollen, oder lassen Sie es unbestimmt, um alle Dateien zu erfassen.

    Stellen Sie für "indexedFileNameExtensions", eine durch Trennzeichen getrennte Liste von Dateierweiterungen (mit einem führenden Punkt) bereit. Wiederholen Sie die gleichen Schritte für "excludedFileNameExtensions", um anzugeben, welche Erweiterungen übersprungen werden sollen. Wenn sich dieselbe Erweiterung in beiden Listen befindet, wird sie von der Indizierung ausgeschlossen.

  4. Legen Sie unter "configuration" "dataToExtract" fest, um zu steuern, welche Teile der Dateien indiziert sind:

    • "contentAndMetadata" ist der Standardwert. Es gibt an, dass alle metadaten- und textbezogenen Inhalte, die aus der Datei extrahiert wurden, indiziert werden.

    • "storageMetadata" gibt an, dass nur die Standarddateieigenschaften und vom Benutzer angegebenen Metadaten indiziert werden. Obwohl die Eigenschaften für Azure Blobs dokumentiert sind, sind die Dateieigenschaften für OneLake identisch, mit Ausnahme der SAS-bezogenen Metadaten.

    • "allMetadata" gibt an, dass Standarddateieigenschaften und alle Metadaten für gefundene Inhaltstypen aus dem Dateiinhalt extrahiert und indiziert werden.

  5. Legen Sie unter "configuration" "parsingMode" fest, wenn Dateien mehreren Suchdokumenten zugeordnet werden sollen oder ob sie aus Nur-Text-, JSON-Dokumenten oder CSV-Dateien bestehen.

  6. Geben Sie Feldzuordnungen an, wenn Es Unterschiede im Feldnamen oder Typ gibt oder wenn Sie mehrere Versionen eines Quellfelds im Suchindex benötigen.

    In der Dateiindizierung können Sie feldzuordnungen häufig weglassen, da der Indexer integrierte Unterstützung für die Zuordnung der "Content"- und Metadateneigenschaften zu ähnlich benannten und eingegebenen Feldern in einem Index hat. Bei Metadateneigenschaften ersetzt der Indexer automatisch Bindestriche - durch Unterstriche im Suchindex.

Weitere Informationen zu anderen Eigenschaften erhalten Sie, indem Sie einen Indexer erstellen. Die vollständige Liste der Parameterbeschreibungen finden Sie unter Create Indexer (REST) in der REST-API. Die Parameter sind für Microsoft OneLake identisch.

Standardmäßig wird ein Indexer automatisch ausgeführt, wenn Sie ihn erstellen. Sie können dieses Verhalten ändern, indem Sie "deaktiviert" auf "true" festlegen. Wenn Sie einen Indexer in einem deaktivierten Zustand erstellen, führen Sie einen Indexer bei Bedarf aus, wenn Sie es verwenden möchten, oder legen Sie ihn in einen Zeitplan ein.

Indexerstatus überprüfen

Hier erfahren Sie mehr über mehrere Ansätze zum Überwachen des Indexerstatus und des Ausführungsverlaufs.

Behandeln von Fehlern

Fehler, die häufig während der Indizierung auftreten, umfassen nicht unterstützte Inhaltstypen, fehlende Inhalte oder überdimensionierte Dateien. Standardmäßig stoppt der OneLake-Dateiindexer, sobald eine Datei mit einem nicht unterstützten Inhaltstyp auftritt. Möglicherweise möchten Sie jedoch, dass die Indizierung fortgesetzt wird, auch wenn Fehler auftreten, und dann einzelne Dokumente später debuggen.

Vorübergehende Fehler sind für Lösungen mit mehreren Plattformen und Produkten üblich. Wenn Sie den Indexer jedoch nach Zeitplan ausführen (z. B. alle 5 Minuten), sollte der Indexer bei der folgenden Ausführung trotzdem wieder problemlos ausgeführt werden können.

Es gibt fünf Indexereigenschaften, die die Antwort des Indexers steuern, wenn Fehler auftreten.

{
  "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 Fahren Sie mit der Indizierung fort, wenn An einem beliebigen Punkt der Verarbeitung Fehler auftreten, entweder beim Analysieren von Blobs oder beim Hinzufügen von Dokumenten zu einem Index. Legen Sie diese Eigenschaften auf die Anzahl der zulässigen Fehler fest. Ein Wert, der -1 die Verarbeitung zulässt, unabhängig davon, wie viele Fehler auftreten. Andernfalls ist der Wert eine positive ganze Zahl.
"maxFailedItemsPerBatch" -1, NULL oder 0, positive ganze Zahl Identisch mit oben, aber für die Batch-Indizierung verwendet.
FehlerBeiNichtUnterstütztemInhaltstyp wahr oder falsch Wenn der Indexer den Inhaltstyp nicht ermitteln kann, geben Sie an, ob der Auftrag fortgesetzt werden oder abgebrochen werden soll.
„failOnUnprocessableDocument“ wahr oder falsch Wenn der Indexer ein Dokument eines ansonsten unterstützten Inhaltstyps nicht verarbeiten kann, geben Sie an, ob der Auftrag fortgesetzt oder abgebrochen werden soll.
„indexStorageMetadataOnlyForOversizedDocuments“ wahr oder falsch Überdimensionierte 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 blob-Größe finden Sie unter Dienstbeschränkungen.

Nächste Schritte

Überprüfen Sie, wie der Assistent zum Importieren von Daten funktioniert, und probieren Sie ihn für diesen Indexer aus. Mithilfe der integrierten Vektorisierung können Sie Daten in Blöcke unterteilen und Einbettungen für die Vektor- oder Hybridsuche mithilfe eines Standardschemas erstellen.