Freigeben über


Lernprogramm: Vektorisieren aus einem strukturierten Dokumentlayout

Azure AI Search kann Sowohl Text als auch Bilder aus PDF-Dokumenten extrahieren und indizieren, die in Azure Blob Storage gespeichert sind. In diesem Lernprogramm erfahren Sie, wie Sie eine multimodale Indizierungspipeline erstellen, die Daten basierend auf der Dokumentstruktur aufschlüsselt und multimodale Einbettungen verwendet , um Text und Bilder aus demselben Dokument zu vektorisieren. Zugeschnittene Bilder werden in einem Wissensspeicher gespeichert, und sowohl Text als auch visuelle Inhalte werden vektorisiert und in einem durchsuchbaren Index aufgenommen. Das Chunking basiert auf dem Layoutmodell der Azure Document Intelligence in Foundry Tools, das die Dokumentstruktur erkennt.

In dieser Anleitung verwenden Sie Folgendes:

  • Ein 36-seitiges PDF-Dokument, das umfangreiche visuelle Inhalte wie Diagramme, Infografiken und gescannte Seiten mit herkömmlichem Text kombiniert.

  • Ein Indexer und Skillset zum Erstellen einer Indizierungspipeline, die KI-Anreicherung durch Skills umfasst.

  • Die Dokumentlayoutfähigkeit zum Extrahieren von Text und normalisierten Bildern mit seinen locationMetadata aus verschiedenen Dokumenten, z. B. Seitenzahlen oder Begrenzungsbereichen.

  • Die Azure Vision multimodale Einbettungskompetenz zum Vektorisieren von Text und Bildern.

  • Ein Suchindex, der zum Speichern extrahierter Text- und Bildinhalte konfiguriert ist. Einige Inhalte werden für die vektorbasierte Ähnlichkeitssuche vektorisiert.

Prerequisites

  • Microsoft Foundry-Ressource. Diese Ressource bietet Zugriff auf das multimodale Einbettungsmodell von Azure Vision und das Azure Document Intelligence-Layoutmodell, das von den Funktionen in diesem Tutorial verwendet wird. Sie müssen eine Foundry-Ressource nutzen, um Fähigkeiten für den Zugriff auf diese Ressourcen zu erhalten.

  • Azure AI Search. Konfigurieren Sie Ihren Suchdienst für die rollenbasierte Zugriffssteuerung und eine verwaltete Identität. Ihr Dienst muss sich auf der Stufe "Einfach" oder höher befinden. Dieses Lernprogramm wird auf der Stufe "Kostenlos" nicht unterstützt.

  • Azure Storage, verwendet zum Speichern von Beispieldaten und zum Erstellen eines Wissensspeichers.

  • Visual Studio Code mit einem REST-Client

Limitations

Vorbereiten von Daten

Die folgenden Anweisungen gelten für Azure Storage, die die Beispieldaten bereitstellt und auch den Wissensspeicher hosten. Eine Suchdienstidentität benötigt Lesezugriff auf Azure Storage, um die Beispieldaten abzurufen, und sie benötigt Schreibzugriff, um den Wissensspeicher zu erstellen. Der Suchdienst erstellt den Container für zugeschnittene Bilder während der Skillset-Verarbeitung, wobei der Name verwendet wird, den Sie in einer Umgebungsvariable angeben.

  1. Laden Sie das folgende Beispiel PDF herunter: sustainable-ai-pdf

  2. Erstellen Sie in Azure Storage einen neuen Container namens sustainable-ai-pdf.

  3. Laden Sie die Beispieldatendatei hoch.

  4. Erstellen Sie Rollenzuweisungen, und geben Sie eine verwaltete Identität in einer Verbindungszeichenfolge an:

    1. Weisen Sie die Rolle Storage Blob Data Reader für den Datenabruf durch den Indexer zu. Weisen Sie den Mitwirkenden von Speicher-Blob-Daten und den Mitwirkenden von Speichertabellendaten zu, um den Wissensspeicher zu erstellen und zu laden. Sie können entweder eine vom System zugewiesene verwaltete Identität oder eine vom Benutzer zugewiesene verwaltete Identität für Ihre Rollenzuweisung des Suchdiensts verwenden.

    2. Für Verbindungen, die mit einer vom System zugewiesenen verwalteten Identität hergestellt werden, rufen Sie eine Verbindungszeichenfolge ab, die eine ResourceId ohne Kontoschlüssel oder Kennwort enthält. Die ResourceId muss die Abonnement-ID des Speicherkontos, die Ressourcengruppe des Speicherkontos und den Namen des Speicherkontos enthalten. Die Verbindungszeichenfolge ist eine URL, die in etwa wie folgt aussieht:

      "credentials" : { 
          "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
      }
      
    3. Für Verbindungen, die mit einer vom Benutzer zugewiesenen verwalteten Identität hergestellt werden, rufen Sie eine Verbindungszeichenfolge ab, die eine ResourceId ohne Kontoschlüssel oder Kennwort enthält. Die ResourceId muss die Abonnement-ID des Speicherkontos, die Ressourcengruppe des Speicherkontos und den Namen des Speicherkontos enthalten. Stellen Sie eine Identität mithilfe der im folgenden Beispiel gezeigten Syntax bereit. Legen Sie userAssignedIdentity auf die benutzerseitig zugewiesene verwaltete Identität fest. Die Verbindungszeichenfolge ist eine URL, die in etwa wie folgt aussieht:

      "credentials" : { 
          "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
      },
      "identity" : { 
          "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
          "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" 
      }
      

Vorbereiten von Modellen

In diesem Tutorial wird davon ausgegangen, dass Sie über eine vorhandene Foundry-Ressource verfügen, über die das multimodale Azure Vision 4.0-Einbettungsmodell aufgerufen wird. Der Suchdienst stellt eine Verbindung mit dem Modell während der Verarbeitung von Fähigkeiten mithilfe seiner verwalteten Identität her. In diesem Abschnitt finden Sie Anleitungen und Links zum Zuweisen von Rollen für autorisierten Zugriff.

Dieselbe Rollenzuweisung wird auch für den Zugriff auf das Azure Document Intelligence-Layoutmodell über eine Foundry-Ressource verwendet.

  1. Melden Sie sich beim Azure-Portal (nicht beim Foundry-Portal) an, und suchen Sie die Foundry-Ressource. Stellen Sie sicher, dass sie sich in einer Region befindet, die die multimodale 4.0-API und das Azure Document Intelligence-Layoutmodell bereitstellt.

  2. Wählen Sie Zugriffssteuerung (IAM) aus.

  3. Wählen Sie "Hinzufügen" und dann " Rollenzuweisung hinzufügen" aus.

  4. Suchen Sie nach Cognitive Services User , und wählen Sie ihn aus.

  5. Wählen Sie verwaltete Identität aus, und weisen Sie dann Ihre verwaltete Identität des Suchdiensts zu.

Einrichten der REST-Datei

Für dieses Lernprogramm erfordert Ihre lokale REST-Clientverbindung mit Azure AI Search einen Endpunkt und einen API-Schlüssel. Diese Werte erhalten Sie im Azure-Portal. Alternative Verbindungsmethoden finden Sie unter Herstellen einer Verbindung mit einem Suchdienst.

Bei authentifizierten Verbindungen, die während der Indexer- und Skillset-Verarbeitung auftreten, verwendet der Suchdienst die zuvor definierten Rollenzuweisungen.

  1. Starten Sie Visual Studio Code und erstellen Sie eine neue Datei.

  2. Geben Sie Werte für Variablen an, die in der Anforderung verwendet werden. Stellen Sie sicher @storageConnection, dass die Verbindungszeichenfolge nicht über ein nachfolgendes Semikolon oder Anführungszeichen verfügt. Geben Sie für @imageProjectionContainereinen Containernamen an, der im BLOB-Speicher eindeutig ist. Azure AI Search erstellt diesen Container für Sie während der Verarbeitung von Fähigkeiten.

    @searchUrl = PUT-YOUR-SEARCH-SERVICE-ENDPOINT-HERE
    @searchApiKey = PUT-YOUR-ADMIN-API-KEY-HERE
    @storageConnection = PUT-YOUR-STORAGE-CONNECTION-STRING-HERE
    @cognitiveServicesUrl = PUT-YOUR-AZURE-AI-FOUNDARY-ENDPOINT-HERE
    @modelVersion = 2023-04-15
    @imageProjectionContainer=sustainable-ai-pdf-images
    
  3. Speichern Sie die Datei mit der Dateierweiterung .rest oder .http. Hilfe zum REST-Client finden Sie in der Schnellstartanleitung: Volltextsuche mit REST.

Um den Azure AI Search-Endpunkt und den API-Schlüssel abzurufen:

  1. Melden Sie sich beim Azure-Portalan, navigieren Sie zur Seite Übersicht des Suchdiensts, und kopieren Sie die URL. Ein Beispiel für einen Endpunkt ist https://mydemo.search.windows.net.

  2. Kopieren Sie unter Einstellungensschlüssel> einen Administratorschlüssel. Administratorschlüssel werden verwendet, um Objekte hinzuzufügen, zu ändern und zu löschen. Es gibt zwei austauschbare Administratorschlüssel. Kopieren Sie einen der beiden Schlüssel.

    Screenshot der URL und API-Schlüssel im Azure-Portal

Erstellen einer Datenquelle

Create Data Source (REST) erstellt eine Datenquellenverbindung, die angibt, welche Daten indiziert werden sollen.

### Create a data source using system-assigned managed identities
POST {{searchUrl}}/datasources?api-version=2025-11-01-preview   HTTP/1.1
  Content-Type: application/json
  api-key: {{searchApiKey}}

  {
    "name": "doc-intelligence-multimodal-embedding-ds",
    "description": "A data source to store multimodal documents",
    "type": "azureblob",
    "subtype": null,
    "credentials":{
      "connectionString":"{{storageConnection}}"
    },
    "container": {
      "name": "sustainable-ai-pdf",
      "query": null
    },
    "dataChangeDetectionPolicy": null,
    "dataDeletionDetectionPolicy": null,
    "encryptionKey": null,
    "identity": null
  }

Senden Sie die Anforderung. Die Antwort sollte in etwa wie folgt aussehen:

HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-Type: application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8
Location: https://<YOUR-SEARCH-SERVICE-NAME>.search.windows-int.net:443/datasources('doc-extraction-multimodal-embedding-ds')?api-version=2025-11-01-preview -Preview
Server: Microsoft-IIS/10.0
Strict-Transport-Security: max-age=2592000, max-age=15724800; includeSubDomains
Preference-Applied: odata.include-annotations="*"
OData-Version: 4.0
request-id: 4eb8bcc3-27b5-44af-834e-295ed078e8ed
elapsed-time: 346
Date: Sat, 26 Apr 2025 21:25:24 GMT
Connection: close

{
  "name": "doc-extraction-multimodal-embedding-ds",
  "description": null,
  "type": "azureblob",
  "subtype": null,
  "indexerPermissionOptions": [],
  "credentials": {
    "connectionString": null
  },
  "container": {
    "name": "sustainable-ai-pdf",
    "query": null
  },
  "dataChangeDetectionPolicy": null,
  "dataDeletionDetectionPolicy": null,
  "encryptionKey": null,
  "identity": null
}

Erstellen eines Index

Index erstellen (REST) erstellt einen Suchindex für Ihren Suchdienst. Ein Index gibt alle Parameter und die dazugehörigen Attribute an.

Für geschachtelte JSON müssen die Indexfelder mit den Quellfeldern identisch sein. Derzeit unterstützt Azure AI Search keine Feldzuordnungen zu geschachtelten JSON-Daten, sodass Feldnamen und Datentypen vollständig übereinstimmen müssen. Der folgende Index richtet sich an die JSON-Elemente im rohen Inhalt.

### Create an index
POST {{searchUrl}}/indexes?api-version=2025-11-01-preview   HTTP/1.1
  Content-Type: application/json
  api-key: {{searchApiKey}}

{
    "name": "doc-intelligence-multimodal-embedding-index",
    "fields": [
        {
            "name": "content_id",
            "type": "Edm.String",
            "retrievable": true,
            "key": true,
            "analyzer": "keyword"
        },
        {
            "name": "text_document_id",
            "type": "Edm.String",
            "searchable": false,
            "filterable": true,
            "retrievable": true,
            "stored": true,
            "sortable": false,
            "facetable": false
        },          
        {
            "name": "document_title",
            "type": "Edm.String",
            "searchable": true
        },
        {
            "name": "image_document_id",
            "type": "Edm.String",
            "filterable": true,
            "retrievable": true
        },
        {
            "name": "content_text",
            "type": "Edm.String",
            "searchable": true,
            "retrievable": true
        },
        {
            "name": "content_embedding",
            "type": "Collection(Edm.Single)",
            "dimensions": 1024,
            "searchable": true,
            "retrievable": true,
            "vectorSearchProfile": "hnsw"
        },
        {
            "name": "content_path",
            "type": "Edm.String",
            "searchable": false,
            "retrievable": true
        },
        {
            "name": "offset",
            "type": "Edm.String",
            "searchable": false,
            "retrievable": true
        },
        {
            "name": "location_metadata",
            "type": "Edm.ComplexType",
            "fields": [
                {
                "name": "page_number",
                "type": "Edm.Int32",
                "searchable": false,
                "retrievable": true
                },
                {
                "name": "bounding_polygons",
                "type": "Edm.String",
                "searchable": false,
                "retrievable": true,
                "filterable": false,
                "sortable": false,
                "facetable": false
                }
            ]
        }         
    ],
    "vectorSearch": {
        "profiles": [
            {
                "name": "hnsw",
                "algorithm": "defaulthnsw",
                "vectorizer": "demo-vectorizer"
            }
        ],
        "algorithms": [
            {
                "name": "defaulthnsw",
                "kind": "hnsw",
                "hnswParameters": {
                    "m": 4,
                    "efConstruction": 400,
                    "metric": "cosine"
                }
            }
        ],
        "vectorizers": [
            {
                "name": "demo-vectorizer",
                "kind": "aiServicesVision",
                "aiServicesVisionParameters": {
                    "resourceUri": "{{cognitiveServicesUrl}}",
                    "authIdentity": null,
                    "modelVersion": "{{modelVersion}}"
                }
            }
        ]     
    },
    "semantic": {
        "defaultConfiguration": "semanticconfig",
        "configurations": [
            {
                "name": "semanticconfig",
                "prioritizedFields": {
                    "titleField": {
                        "fieldName": "document_title"
                    },
                    "prioritizedContentFields": [
                    ],
                    "prioritizedKeywordsFields": []
                }
            }
        ]
    }
}

Wichtige Punkte:

  • Text- und Bildeinbettungen werden im content_embedding Feld gespeichert und müssen mit entsprechenden Dimensionen wie 1024 und einem Vektorsuchprofil konfiguriert werden.

  • location_metadata erfasst Metadaten zu Begrenzungspolygonen und Seitenzahlen für jedes Textstück und normalisierte Bild und ermöglicht so eine präzise räumliche Suche oder UI-Überlagerungen.

  • Weitere Informationen zur Vektorsuche finden Sie unter Vektoren in Azure AI Search.

  • Weitere Informationen zur semantischen Rangfolge finden Sie unter Semantikrangfolge in Azure AI Search.

Erstellen eines Skillsets

Create Skillset (REST) erstellt ein Skillset für Ihren Suchdienst. Ein Skillset definiert die Operationen, die Inhalte vor der Indizierung segmentieren und einbetten. Dieses Skillset verwendet die Dokumentlayoutfähigkeit, um Text und Bilder zu extrahieren und Positionsmetadaten beizubehalten, die für Zitate in RAG-Anwendungen nützlich sind. Es verwendet die Azure Vision multimodale Einbettungsfähigkeiten, um Bild- und Textinhalte zu vektorisieren.

### Create a skillset
POST {{searchUrl}}/skillsets?api-version=2025-11-01-preview   HTTP/1.1
  Content-Type: application/json
  api-key: {{searchApiKey}}

{
  "name": "doc-intelligence-multimodal-embedding-skillset",
  "description": "A sample skillset for multimodal using multimodal embedding",
  "skills": [
    {
      "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
      "name": "document-layout-skill",
      "description": "Azure Document Intelligence skill for document cracking",
      "context": "/document",
      "outputMode": "oneToMany",
      "outputFormat": "text",
      "extractionOptions": ["images", "locationMetadata"],
      "chunkingProperties": {     
          "unit": "characters",
          "maximumLength": 2000, 
          "overlapLength": 200
      },
      "inputs": [
        {
          "name": "file_data",
          "source": "/document/file_data"
        }
      ],
      "outputs": [
        { 
          "name": "text_sections", 
          "targetName": "text_sections" 
        }, 
        { 
          "name": "normalized_images", 
          "targetName": "normalized_images" 
        } 
      ]
    },
    { 
      "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill", 
      "name": "text-embedding-skill",
      "description": "Vision Vectorization skill for text",
      "context": "/document/text_sections/*", 
      "modelVersion": "2023-04-15", 
      "inputs": [ 
        { 
          "name": "text", 
          "source": "/document/text_sections/*/content" 
        } 
      ], 
      "outputs": [ 
        { 
          "name": "vector",
          "targetName": "text_vector"
        } 
      ] 
    },    
    { 
      "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill", 
      "name": "image-embedding-skill",
      "description": "Vision Vectorization skill for images",
      "context": "/document/normalized_images/*", 
      "modelVersion": "2023-04-15", 
      "inputs": [ 
        { 
          "name": "image", 
          "source": "/document/normalized_images/*" 
        } 
      ], 
      "outputs": [ 
        { 
          "name": "vector",
          "targetName": "image_vector"
        } 
      ] 
    },
    {
      "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
      "name": "shaper-skill",
      "context": "/document/normalized_images/*",
      "inputs": [
        {
          "name": "normalized_images",
          "source": "/document/normalized_images/*",
          "inputs": []
        },
        {
          "name": "imagePath",
          "source": "='my_container_name/'+$(/document/normalized_images/*/imagePath)",
          "inputs": []
        }
      ],
      "outputs": [
        {
          "name": "output",
          "targetName": "new_normalized_images"
        }
      ]
    }      
  ], 
   "indexProjections": {
      "selectors": [
        {
          "targetIndexName": "doc-intelligence-multimodal-embedding-index",
          "parentKeyFieldName": "text_document_id",
          "sourceContext": "/document/text_sections/*",
          "mappings": [    
            {
            "name": "content_embedding",
            "source": "/document/text_sections/*/text_vector"
            },                      
            {
              "name": "content_text",
              "source": "/document/text_sections/*/content"
            },
            {
              "name": "location_metadata",
              "source": "/document/text_sections/*/locationMetadata"
            },                
            {
              "name": "document_title",
              "source": "/document/document_title"
            }   
          ]
        },        
        {
          "targetIndexName": "{{index}}",
          "parentKeyFieldName": "image_document_id",
          "sourceContext": "/document/normalized_images/*",
          "mappings": [    
            {
            "name": "content_embedding",
            "source": "/document/normalized_images/*/image_vector"
            },                                           
            {
              "name": "content_path",
              "source": "/document/normalized_images/*/new_normalized_images/imagePath"
            },                    
            {
              "name": "document_title",
              "source": "/document/document_title"
            },
            {
              "name": "location_metadata",
              "source": "/document/normalized_images/*/locationMetadata"
            }             
          ]
        }
      ],
      "parameters": {
        "projectionMode": "skipIndexingParentDocuments"
      }
  },
  "cognitiveServices": {
    "@odata.type": "#Microsoft.Azure.Search.AIServicesByIdentity",
    "subdomainUrl": "{{cognitiveServicesUrl}}",
    "identity": null
  },
  "knowledgeStore": {
    "storageConnectionString": "",
    "identity": null,
    "projections": [
      {
        "files": [
          {
            "storageContainer": "{{imageProjectionContainer}}",
            "source": "/document/normalized_images/*"
          }
        ]
      }
    ]
  }
}

Dieses Skillset extrahiert Text und Bilder, vektorisiert beide und gestaltet die Bildmetadaten für die Projektion in den Index.

Wichtige Punkte:

  • Das content_text Feld wird mit Text gefüllt, der mithilfe der Dokumentlayoutfunktion extrahiert und aufgeteilt wurde.

  • content_path enthält den relativen Pfad zur Bilddatei innerhalb des vorgesehenen Bildprojektionscontainers. Dieses Feld wird nur für Bilder generiert, die aus Dokumenten extrahiert werden, wenn extractOption auf ["images", "locationMetadata"] oder ["images"] gesetzt ist, und kann aus dem erweiterten Dokument dem Quellfeld /document/normalized_images/*/imagePath zugeordnet werden.

  • Die multimodale Einbettungskompetenz von Azure Vision ermöglicht das Einbetten von textbezogenen und visuellen Daten mit demselben Qualifikationstyp, der durch Eingaben (Text vs Bild) unterschieden wird. Weitere Informationen finden Sie unter Azure Vision multimodale Einbettungskompetenzen.

Erstellen und Ausführen eines Indexers

"Indexer erstellen" erstellt einen Indexer für Ihren Suchdienst. Ein Indexer stellt eine Verbindung mit der Datenquelle, lädt Daten, führt ein Skillset aus und indiziert die erweiterten Daten.

### Create and run an indexer
POST {{searchUrl}}/indexers?api-version=2025-11-01-preview   HTTP/1.1
  Content-Type: application/json
  api-key: {{searchApiKey}}

{
  "dataSourceName": "doc-intelligence-multimodal-embedding-ds",
  "targetIndexName": "doc-intelligence-multimodal-embedding-index",
  "skillsetName": "doc-intelligence-multimodal-embedding-skillset",
  "parameters": {
    "maxFailedItems": -1,
    "maxFailedItemsPerBatch": 0,
    "batchSize": 1,
    "configuration": {
      "allowSkillsetToReadFileData": true
    }
  },
  "fieldMappings": [
    {
      "sourceFieldName": "metadata_storage_name",
      "targetFieldName": "document_title"
    }
  ],
  "outputFieldMappings": []
}

Abfragen ausführen

Sie können mit der Suche beginnen, sobald das erste Dokument geladen wurde.

### Query the index
POST {{searchUrl}}/indexes/doc-intelligence-multimodal-embedding-index/docs/search?api-version=2025-11-01-preview   HTTP/1.1
  Content-Type: application/json
  api-key: {{searchApiKey}}
  
  {
    "search": "*",
    "count": true
  }

Senden Sie die Anforderung. Dies ist eine nicht angegebene Volltext-Suchabfrage, die alle felder zurückgibt, die im Index als abrufbar gekennzeichnet sind, zusammen mit einer Dokumentanzahl. Die Antwort sollte in etwa wie folgt aussehen:

{
  "@odata.count": 100,
  "@search.nextPageParameters": {
    "search": "*",
    "count": true,
    "skip": 50
  },
  "value": [
  ],
  "@odata.nextLink": "https://<YOUR-SEARCH-SERVICE-NAME>.search.windows.net/indexes/doc-intelligence-multimodal-embedding-index/docs/search?api-version=2025-11-01-preview "
}

In der Antwort werden 100 Dokumente zurückgegeben.

Sie können für Filter auch logische Operatoren (and, or, not) und Vergleichsoperatoren (eq, ne, gt, lt, ge, le) nutzen. Bei Zeichenfolgenvergleichen wird die Groß-/Kleinschreibung beachtet. Weitere Informationen und Beispiele finden Sie unter Beispiele für einfache Suchabfragen.

Note

Der $filter Parameter funktioniert nur für Felder, die während der Indexerstellung gefiltert wurden.

### Query for only images
POST {{searchUrl}}/indexes/doc-intelligence-multimodal-embedding-index/docs/search?api-version=2025-11-01-preview   HTTP/1.1
  Content-Type: application/json
  api-key: {{searchApiKey}}
  
  {
    "search": "*",
    "count": true,
    "filter": "image_document_id ne null"
  }
### Query for text or images with content related to energy, returning the id, parent document, and text (only populated for text chunks), and the content path where the image is saved in the knowledge store (only populated for images)
POST {{searchUrl}}/indexes/doc-intelligence-multimodal-embedding-index/docs/search?api-version=2025-11-01-preview   HTTP/1.1
  Content-Type: application/json
  api-key: {{searchApiKey}}
  
  {
    "search": "energy",
    "count": true,
    "select": "content_id, document_title, content_text, content_path"
  }

Zurücksetzen und erneut ausführen

Indexer können zurückgesetzt werden, um den Ausführungsverlauf zu löschen, wodurch eine vollständige Erneute Ausführung möglich ist. Die folgenden POST-Anforderungen werden zurückgesetzt, gefolgt von einer erneuten Ausführung.

### Reset the indexer
POST {{searchUrl}}/indexers/doc-intelligence-multimodal-embedding-indexer/reset?api-version=2025-11-01-preview   HTTP/1.1
  api-key: {{searchApiKey}}
### Run the indexer
POST {{searchUrl}}/indexers/doc-intelligence-multimodal-embedding-indexer/run?api-version=2025-11-01-preview   HTTP/1.1
  api-key: {{searchApiKey}}
### Check indexer status 
GET {{searchUrl}}/indexers/doc-intelligence-multimodal-embedding-indexer/status?api-version=2025-11-01-preview   HTTP/1.1
  api-key: {{searchApiKey}}

Bereinigen von Ressourcen

Wenn Sie in Ihrem eigenen Abonnement arbeiten, ist es ratsam, nach Abschluss eines Projekts die nicht mehr benötigten Ressourcen zu entfernen. Ressourcen, die weiterhin ausgeführt werden, können Sie Geld kosten. Sie können Ressourcen einzeln löschen oder die Ressourcengruppe löschen, um den gesamten Satz von Ressourcen zu löschen.

Sie können das Azure-Portal verwenden, um Indizes, Indexer und Datenquellen zu löschen.

Siehe auch

Nachdem Sie nun mit einer Beispielimplementierung eines multimodalen Indizierungsszenarios vertraut sind, sehen Sie sich Folgendes an: