Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här självstudien skapar du en pipeline för multimodala indexerare som utför följande uppgifter:
- Extrahera och dela upp text och bilder
- Vektorisera text och bilder för likhetssökning
- Skicka beskurna bilder till en kunskapsdatabas för hämtning av din app
Denna handledning visar flera skicklighetsuppsättningar sida vid sida för att belysa olika sätt att extrahera, segmentera och vektorisera multimodalt innehåll.
Förutsättningar
Azure AI Search, på den grundläggande prisnivån eller högre om du vill använda exempeldata. Konfigurera en hanterad identitet för rollbaserad åtkomst till modeller och data.
Azure Storage, som används för att lagra exempeldata och för att skapa ett kunskapslager.
Microsoft Foundry-resurs som tillhandahåller Foundry-modeller och API:er. Om du använder Azure AI Vision multimodal väljer du en av dess regioner som stöds för din Microsoft Foundry-resurs.
Visual Studio Code med REST-klienten eller Python-tillägget. Om du inte har installerat en lämplig version av Python följer du anvisningarna i VS Code Python-självstudien.
Multimodal indexering implementeras med kunskaper som anropar AI-modeller och API:er i en indexerarpipeline. Modellförutsättningarna varierar beroende på vilka kunskaper som väljs för varje uppgift.
Tips/Råd
Om du vill slutföra den här självstudien på den kostnadsfria nivån använder du ett mindre dokument med färre bilder. I den här självstudien används endast Foundry-modeller, men du kan skapa anpassade kunskaper för att använda andra modeller.
Konfigurera åtkomst
Innan du börjar kontrollerar du att du har behörighet att komma åt innehåll och åtgärder i Azure AI Search. Den här snabbstarten använder Microsoft Entra-ID för autentisering och rollbaserad åtkomst för auktorisering. Du måste vara ägare eller administratör för användaråtkomst för att tilldela roller. Om roller inte är genomförbara använder du nyckelbaserad autentisering i stället.
Så här konfigurerar du den rekommenderade rollbaserade åtkomsten:
Aktivera rollbaserad åtkomst för söktjänsten.
Tilldela följande roller till ditt användarkonto.
Söktjänstdeltagare
Sökindexdatabidragare
Dataläsare för sökindex
Hämta slutpunkt
Varje Azure AI Search-tjänst har en slutpunkt, vilket är en unik URL som identifierar och ger nätverksåtkomst till tjänsten. I ett senare avsnitt anger du den här slutpunkten för att ansluta till söktjänsten programmatiskt.
Så här hämtar du slutpunkten:
Logga in på Azure-portalen och välj din söktjänst.
Välj Översikt i den vänstra rutan.
Anteckna slutpunkten, som bör se ut som
https://my-service.search.windows.net.
Förberedelse av data
Exempeldata är ett 36-sidiga PDF-dokument som kombinerar omfattande visuellt innehåll, till exempel diagram, informationsgrafik och skannade sidor, med originaltext. Azure Storage tillhandahåller exempeldata och är värd för kunskapsarkivet. En hanterad identitet för söktjänsten behöver:
Läsbehörighet till Azure Storage för att hämta exempeldata.
Skrivåtkomst för att skapa kunskapsdatabasen. Söktjänsten skapar containern för beskurna avbildningar under bearbetningen av kompetensuppsättningar med det namn du anger i en miljövariabel.
Följ de här stegen för att konfigurera exempeldata.
Ladda ned följande pdf-exempel: sustainable-ai-pdf
Logga in på Azure-portalen.
I Azure Storage skapar du en ny container med namnet sustainable-ai-pdf.
Tilldela roller till söktjänstens hanterade identitet:
Storage Blob Data Reader för datahämtning
Storage Blob Data Contributor och Storage Table Data Contributor för att skapa kunskapsarkivet.
När du har Azure Storage-sidorna öppna i Azure-portalen hämtar du en anslutningssträng för miljövariabeln.
Under Inställningar>Slutpunkter väljer du slutpunkten för resurs-ID. Det bör se ut ungefär som i följande exempel:
/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/rg-mydemo/providers/Microsoft.Storage/storageAccounts/mydemostorage/blobServices/default.Prefix
ResourceId=för den här anslutningssträngen. Använd den här versionen för miljövariabeln.ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/rg-mydemo/providers/Microsoft.Storage/storageAccounts/mydemostorage/blobServices/defaultFör anslutningar som görs med hjälp av en användartilldelad hanterad identitet använder du samma anslutningssträng och anger en
identityegenskap som är inställd på en fördefinierad användartilldelad hanterad identitet."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" }
Välj färdigheter för multimodal indexering
Definitionerna index, datakälla och indexerare är mestadels desamma för alla scenarier, men kunskapsuppsättningen kan innehålla en annan färdighetskombination beroende på hur du vill extrahera, segmentera och vektorisera text och bilder.
Välj färdigheter för extrahering och segmentering:
- Extrahering av dokument, textdelning
- Dokumentlayout
Välj färdigheter för vektorisering:
- GenAI-prompt, Azure OpenAI-inbäddning
- Azure AI Vision Multimodal-inbäddning
De flesta av dessa kunskaper beror på en distribuerad modell eller en Microsoft Foundry-resurs. I följande tabell identifieras modellen som stöder varje färdighet, plus resursen och behörigheterna som ger modellåtkomst.
| Färdighet | Usage | Modell | Resource | Permissions |
|---|---|---|---|---|
| Kunskap om dokumentextrahering, kunskap om textdelning | Extrahera och dela upp baserat på bestämd storlek. Extrahering av text är kostnadsfri. Bildextrahering kan faktureras. |
Ingen (inbyggd) | Azure AI-sökning | Se Konfigurera åtkomst |
| Kunskaper i dokumentlayout | Extrahera och dela upp baserat på dokumentets layout. | Dokumentinformation 4.0 | Microsoft Foundry | Cognitive Services-användare |
| Kunskap om Azure AI Vision | Vektorisera text- och bildinnehåll. | Azure AI Vision multimodal 4.0 | Microsoft Foundry | Cognitive Services-användare |
| GenAI Prompt-färdighet | Anropa en LLM för att generera textbeskrivningar av bildinnehåll. | GPT-5 eller GPT-4 | Microsoft Foundry | Cognitive Services-användare |
| Inbäddningsfärdighet för Azure OpenAI | Vektorisera text och genererade textbildbeskrivningar. | Text-embedding-3 eller text-embedding-ada-002 | Microsoft Foundry | Cognitive Services-användare |
Modellanvändningen är fakturerbar, förutom textextrahering och textdelning.
Modelldistributioner kan finnas i valfri region som stöds om söktjänsten ansluter via den offentliga slutpunkten, en privat anslutning eller om faktureringsanslutningen är nyckellös. Om anslutningen annars är nyckelbaserad kopplar du en Microsoft Foundry-resurs från samma region som Azure AI Search.
Konfigurera din miljö
För den här självstudien kräver din lokala REST-klientanslutning till Azure AI Search en slutpunkt och en API-nyckel. Du kan hämta dessa värden i Azure-portalen. Andra anslutningsmetoder finns i Ansluta till en söktjänst.
För autentiserade anslutningar som inträffar under bearbetning av indexerare och kompetensuppsättningar använder söktjänsten de rolltilldelningar som du tidigare definierade.
Starta Visual Studio Code och skapa en ny fil.
Ange värden för variabler som används i begäran:
@searchUrl = PUT-YOUR-SEARCH-SERVICE-ENDPOINT-HERE @storageConnection = PUT-YOUR-STORAGE-CONNECTION-STRING-HERE @imageProjectionContainer=sustainable-ai-pdf-images @token = PUT-YOUR-PERSONAL-IDENTITY-TOKEN HEREFör
@storageConnectionkontrollerar du att anslutningssträngen inte har ett avslutande semikolon eller citattecken. Se avsnittet Förbered dina data för syntaxen för anslutningssträng.För
@imageProjectionContaineranger du ett containernamn som är unikt i blobb-lagringen. Azure AI Search skapar den här containern under kompetensbearbetningen.Mer information om hur du hämtar en åtkomsttoken finns i Ansluta till Azure AI Search. Om du inte kan använda roller kan du läsa Ansluta med nycklar.
Lägg till den här variabeln om du använder färdigheten Dokumentlayout eller färdigheten Azure AI Vision (använder modellversion 2023-04-15):
@foundryUrl = PUT-YOUR-MULTISERVICE-AZURE-AI-FOUNDRY-ENDPOINT-HERE @azureAiVisionModelVersion = 2023-04-15Lägg till dessa variabler om du använder GenAI Prompt-färdigheten och Inbäddningsfärdigheten för Azure OpenAI:
@chatCompletionModelUri = PUT-YOUR-DEPLOYED-MODEL-URI-HERE @chatCompletionModelKey = PUT-YOUR-MODEL-KEY-HERE @textEmbeddingModelUri = PUT-YOUR-DEPLOYED-MODEL-URI-HERE @textEmbeddingModelKey = PUT-YOUR-MODEL-KEY-HERESpara filen med hjälp av ett
.restfilnamnstillägg eller.httpfilnamnstillägg. Hjälp med REST-klienten finns i Snabbstart: Fulltextsökning med REST.
Samma Foundry-resurs kan tillhandahålla Azure AI Vision, Dokumentinformation, en modell för chattens slutförande och en textinbäddningsmodell. Se bara till att regionen stöder de modeller du behöver. Om en region har kapacitet kan du behöva skapa en ny resurs för att distribuera de modeller som behövs.
Konfigurera en pipeline
En indexeringspipeline består av fyra komponenter: datakälla, index, kompetensuppsättning och indexerare.
- Skapa en datakälla
- Skapa ett index
- Skapa en kompetensuppsättning för extrahering, segmentering och vektorisering
- Skapa (och köra) en indexerare
Ladda ned REST-filer
GitHub-lagringsplatsen azure-search-rest-samples har . REST-filer som skapar pipelinen och kör frågor mot indexet.
Skapa en datakälla
Skapa datakälla (REST) skapar en datakällaanslutning som anger vilka data som ska indexeras.
POST {{searchUrl}}/datasources?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"name":"demo-multimodal-ds",
"description":null,
"type":"azureblob",
"subtype":null,
"credentials":{
"connectionString":"{{storageConnection}}"
},
"container":{
"name":"sustainable-ai-pdf",
"query":null
},
"dataChangeDetectionPolicy":null,
"dataDeletionDetectionPolicy":null,
"encryptionKey":null,
"identity":null
}
Skicka begäran. Svaret ska se ut så här:
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('demo-multimodal-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 2026 21:25:24 GMT
Connection: close
{
"name": "demo-multimodal-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
}
Skapa ett index
Skapa index (REST) skapar ett index för söktjänsten. Indexet liknar alla kompetensuppsättningar med följande undantag:
Avsnittet
vectorizersdefinierar hur frågetexten vektoriseras vid söktillfället. Den måste använda samma inbäddningsprovider och modellfamilj som används av kunskapsuppsättningen (Azure AI Vision multimodal eller Azure OpenAI-textinbäddning) så att frågevektorer och indexerade vektorer är kompatibla.Fältvärdet
content_embeddingdimensionsmåste exakt matcha vektorstorleken som skapas av inbäddningsmodellen (till exempel1024för Azure AI Vision multimodal eller3072förtext-embedding-3-large). Ett matchningsfel kan orsaka indexerings- eller frågefel.För komplexa typer måste kapslade fältnamn i indexet exakt matcha berikningsutdatanamnen (inklusive hölje). Azure AI Search kan inte mappa kapslade underfält till olika namn. Använd
location_metadata,bounding_polygons, ochpage_numberför fält som accepterar utdata för textdelning ochlocationMetadata,boundingPolygonsochpageNumberför fält som accepterar dokumentlayoututdata.
Här är indexdefinitionerna för varje färdighetskombination.
- Dokumentextrahering och multimodal inbäddning
- Extrahering av dokument och inbäddning av text
- Dokumentlayout och multimodal inbäddning
- Dokumentlayout och textinbäddning
Det här mönstret använder:
Kunskaper om dokumentextrahering och textdelning för extrahering och segmentering.
Multimodala kunskaper i Azure AI Vision för text- och bildinbäddningar.
{
"name":"demo-multimodal-1-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":"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":"{{foundryUrl}}",
"authIdentity":null,
"modelVersion":"{{azureAiVisionModelVersion}}"
}
}
]
},
"semantic":{
"defaultConfiguration":"semanticconfig",
"configurations":[
{
"name":"semanticconfig",
"prioritizedFields":{
"titleField":{
"fieldName":"document_title"
},
"prioritizedContentFields":[
],
"prioritizedKeywordsFields":[
]
}
}
]
}
}
Viktiga punkter:
content_embeddingär det enda vektorfältet och lagrar vektorer för både text- och bildinnehåll. Den måste konfigureras med lämpliga dimensioner för inbäddningsmodellen, till exempel3072för textinbäddning-3-large och en vektorsökningsprofil.content_pathär sökvägen till varje bild i kunskapsarkivet.location_metadataellerlocationMetadatafångar metadata för inramning av polygon och sidnummer för varje normaliserad bild, vilket möjliggör exakt rymdsökning eller överlagring av användargränssnitt. Fältnamnen varierar beroende på hur informationen extraheras.För extrahering av innehåll baserat på kunskaper om textdelning: platsmetadata stöds endast för PDF-filer. För kunskaper om textdelning måste du dessutom inkludera en Shaper-färdighet för att samla in minnesintern platsmetadata och representera den i dokumentträdet. Shaper-funktionen ansvarar också för att lägga till containernamnet för kunskapslagringen i
content_path.
Skapa en kompetensuppsättning för extrahering, segmentering och vektorisering
Skapa kunskapsuppsättning (REST) skapar en kompetensuppsättning i söktjänsten. En kompetensuppsättning definierar de åtgärder som extraherar, segmenterar och vektoriserar innehåll före indexering.
Det finns fyra kompetensområdesmönster. Var och en visar en strategi för extrahering och segmentering i kombination med en vektoriseringsstrategi. Det finns två viktiga skillnader i varje mönster: kompetensuppsättningens sammansättning och indexProjections. Projektionerna varierar beroende på utdata för varje inbäddningsfunktion.
Alla fyra mönstren inkluderar Shaper-färdigheten. Utdata från Shaper-färdigheten skapar den normaliserade sökvägen för bilder i kunskapsarkivet och platsmetadata (sidnummer och avgränsande polygoner).
- Dokumentextrahering och multimodal inbäddning
- Extrahering av dokument och inbäddning av text
- Dokumentlayout och multimodal inbäddning
- Dokumentlayout och textinbäddning
Det här mönstret använder:
Kunskaper om dokumentextrahering och textdelning för extrahering och segmentering.
Multimodala kunskaper i Azure AI Vision för text- och bildinbäddningar.
Shaper-förmåga samlar in positionsmetadata och containernamnet för bildfilens sökväg i kunskapslagringen. Den här funktionen är unik för PDF-innehåll och dokumentextrahering.
{
"name":"demo-multimodal-skillset",
"description":"A test skillset",
"skills":[
{
"@odata.type":"#Microsoft.Skills.Util.DocumentExtractionSkill",
"name":"document-extraction-skill",
"description":"Document extraction skill to extract text and images from documents",
"parsingMode":"default",
"dataToExtract":"contentAndMetadata",
"configuration":{
"imageAction":"generateNormalizedImages",
"normalizedImageMaxWidth":2000,
"normalizedImageMaxHeight":2000
},
"context":"/document",
"inputs":[
{
"name":"file_data",
"source":"/document/file_data"
}
],
"outputs":[
{
"name":"content",
"targetName":"extracted_content"
},
{
"name":"normalized_images",
"targetName":"normalized_images"
}
]
},
{
"@odata.type":"#Microsoft.Skills.Text.SplitSkill",
"name":"split-skill",
"description":"Split skill to chunk documents",
"context":"/document",
"defaultLanguageCode":"en",
"textSplitMode":"pages",
"maximumPageLength":2000,
"pageOverlapLength":200,
"unit":"characters",
"inputs":[
{
"name":"text",
"source":"/document/extracted_content",
"inputs":[
]
}
],
"outputs":[
{
"name":"textItems",
"targetName":"pages"
}
]
},
{
"@odata.type":"#Microsoft.Skills.Vision.VectorizeSkill",
"name":"text-embedding-skill",
"description":"Vision Vectorization skill for text",
"context":"/document/pages/*",
"modelVersion":"{{azureAiVisionModelVersion}}",
"inputs":[
{
"name":"text",
"source":"/document/pages/*"
}
],
"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":"{{azureAiVisionModelVersion}}",
"inputs":[
{
"name":"image",
"source":"/document/normalized_images/*"
}
],
"outputs":[
{
"name":"vector",
"targetName":"image_vector"
}
]
},
{
"@odata.type":"#Microsoft.Skills.Util.ShaperSkill",
"name":"shaper-skill",
"description":"Shaper skill to reshape the data to fit the index schema",
"context":"/document/normalized_images/*",
"inputs":[
{
"name":"normalized_images",
"source":"/document/normalized_images/*",
"inputs":[
]
},
{
"name":"imagePath",
"source":"='{{imageProjectionContainer}}/'+$(/document/normalized_images/*/imagePath)",
"inputs":[
]
},
{
"name":"dataUri",
"source":"='data:image/jpeg;base64,'+$(/document/normalized_images/*/data)",
"inputs":[
]
},
{
"name":"location_metadata",
"sourceContext":"/document/normalized_images/*",
"inputs":[
{
"name":"page_number",
"source":"/document/normalized_images/*/page_number"
},
{
"name":"bounding_polygons",
"source":"/document/normalized_images/*/bounding_polygon"
}
]
}
],
"outputs":[
{
"name":"output",
"targetName":"new_normalized_images"
}
]
}
],
"cognitiveServices":{
"@odata.type":"#Microsoft.Azure.Search.AIServicesByIdentity",
"subdomainUrl":"{{foundryUrl}}",
"identity":null
},
"indexProjections":{
"selectors":[
{
"targetIndexName":"demo-multimodal-index",
"parentKeyFieldName":"text_document_id",
"sourceContext":"/document/pages/*",
"mappings":[
{
"name":"content_embedding",
"source":"/document/pages/*/text_vector"
},
{
"name":"content_text",
"source":"/document/pages/*"
},
{
"name":"document_title",
"source":"/document/document_title"
}
]
},
{
"targetIndexName":"demo-multimodal-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":"location_metadata",
"source":"/document/normalized_images/*/new_normalized_images/location_metadata"
},
{
"name":"document_title",
"source":"/document/document_title"
}
]
}
],
"parameters":{
"projectionMode":"skipIndexingParentDocuments"
}
},
"knowledgeStore":{
"storageConnectionString":"{{storageConnection}}",
"identity":null,
"projections":[
{
"files":[
{
"storageContainer":"{{imageProjectionContainer}}",
"source":"/document/normalized_images/*"
}
]
}
]
}
}
Köra indexeraren
Skapa Indexer skapar en indexerare i söktjänsten. En indexerare ansluter till datakällan, läser in data, kör en kompetensuppsättning och indexerar det berikade innehållet.
### Create and run an indexer
POST {{searchUrl}}/indexers?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"name": "demo-multimodal-indexer",
"dataSourceName": "demo-multimodal-ds",
"targetIndexName": "demo-multimodal-index",
"skillsetName": "demo-multimodal-skillset",
"parameters": {
"maxFailedItems": -1,
"maxFailedItemsPerBatch": 0,
"batchSize": 1,
"configuration": {
"allowSkillsetToReadFileData": true
}
},
"fieldMappings": [
{
"sourceFieldName": "metadata_storage_name",
"targetFieldName": "document_title"
}
],
"outputFieldMappings": []
}
Utföra sökfrågor
Du kan börja söka så snart det första dokumentet har lästs in. Det här är en ospecificerad fulltextsökningsfråga som returnerar alla fält som markerats som hämtningsbara i indexet, tillsammans med ett antal dokument.
Tips/Råd
Fältet content_embedding innehåller över tusen dimensioner. Använd en select instruktion för att exkludera fältet från svaret genom att uttryckligen välja alla andra fält. Justera select-instruktionen så att den matchar fälten (location_metadata jämfört locationMetadatamed ) i ditt index. Här är ett exempel: "select": "content_id, text_document_id, document_title, image_document_id, content_text,
### Query the index
POST {{searchUrl}}/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"search": "*",
"count": true
}
Skicka begäran. Svaret ska se ut så här:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
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: 712ca003-9493-40f8-a15e-cf719734a805
elapsed-time: 198
Date: Wed, 30 Apr 2025 23:20:53 GMT
Connection: close
{
"@odata.count": 100,
"@search.nextPageParameters": {
"search": "*",
"count": true,
"skip": 50
},
"value": [
],
"@odata.nextLink": "https://<YOUR-SEARCH-SERVICE-NAME>.search.windows.net/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview "
}
100 dokument returneras i svaret.
Fråga efter innehåll som endast är bilder
Använd ett filter för att exkludera allt innehåll som inte är avbildning. Parametern $filter fungerar bara på fält som har markerats som filterbara när index skapas.
För filter kan du också använda logiska operatorer (och eller inte) och jämförelseoperatorer (eq, ne, gt, lt, ge, le). Strängjämförelser är skiftlägeskänsliga. Mer information och exempel finns i Exempel på enkla sökfrågor.
POST {{searchUrl}}/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"search": "*",
"count": true,
"filter": "image_document_id ne null"
}
Sökresultat som innehåller endast bildinnehåll har inte textinnehåll, så du kan exkludera textfält.
Fältet content_embedding innehåller högdimensionella vektorer (vanligtvis 1 000 till 3 000 dimensioner) för både sidtext och verbaliserade bildbeskrivningar. Undanta det här fältet från frågan.
Fältet content_path innehåller den relativa sökvägen till bildfilen i den avsedda containern för bildprojektion. Det här fältet genereras endast för bilder som extraherats från PDF-filer när imageAction det är inställt på generateNormalizedImagesoch kan mappas från det berikade dokumentet från källfältet /document/normalized_images/*/imagePath.
För PDF-kontext som extraherats med hjälp av Text Split-färdigheten lägger Shaper-färdigheten till containernamnet i sökvägen och i platsmetadatan.
Fråga efter innehåll som är relaterat till "energi"
Fråga efter text eller bilder med innehåll som är relaterat till energi, returnera innehålls-ID, överordnat dokument och text (endast ifyllt för textsegment) och innehållssökvägen där bilden sparas i kunskapsarkivet (endast ifyllt för bilder).
Den här frågan är endast fulltextsökning, men du kan fråga vektorfältet för likhetssökning.
POST {{searchUrl}}/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"search": "energy",
"count": true
}
Återställa och köra igen
Indexerare kan återställas för att rensa högvattenmärket, vilket möjliggör en fullständig ombyggnad. Följande POST-begäranden är för återställning, följt av omkörning.
### Reset the indexer
POST {{searchUrl}}/indexers/demo-multimodal-indexer/reset?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
### Run the indexer
POST {{searchUrl}}/indexers/demo-multimodal-indexer/run?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
### Check indexer status
GET {{searchUrl}}/indexers/demo-multimodal-indexer/status?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
Visa bilder i kunskapsarkivet
Kom ihåg att kunskapsuppsättningen i den här självstudien skapar ett kunskapslager för bildinnehåll som extraherats från PDF-filen. När indexeraren har körts bör containern sustainable-ai-pdf-images ha cirka 23 bilder.
Du kan inte returnera dessa bilder i en sökfråga. Du kan dock skriva programkod som anropar Azure Storage-API:erna för att hämta bilderna om du behöver dem för användarupplevelsen. Fältet content_path har sökvägen till varje bild.
Så här visar du bilderna i Storage Browser:
Logga in på Azure-portalen och gå till ditt Lagringskonto.
Expandera containern sustainable-ai-pdf-images i Storage Browser.
Välj en bild.
I menyn längst till höger (...) väljer du Visa/redigera.
Rensa resurser
När du arbetar i din egen prenumeration är det en bra idé att slutföra ett projekt genom att ta bort de resurser som du inte längre behöver. Resurser som lämnas igång kan kosta dig pengar.
I Azure-portalen väljer du Alla resurser eller Resursgrupper i den vänstra rutan för att hitta och hantera resurser. Du kan ta bort resurser individuellt eller ta bort resursgruppen för att ta bort alla resurser samtidigt.