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.
Observera
Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.
Important
Funktioner, funktioner eller egenskaper som har markerats (förhandsversion) omfattas inte av ett serviceavtal, rekommenderas inte för produktionsarbetsbelastningar och kan ändras eller begränsas innan de blir allmänt tillgängliga. Villkoren för Azure AI-sökning förhandsgranskning gäller för alla förhandsgranskningsfunktioner, oavsett om de är fristående eller en del av en allmänt tillgänglig funktion.
Funktionen för stöd för fält med flera vektorer (förhandsversion) i Azure AI-sökning gör att du kan indexera flera barnvektorer i ett enda dokumentfält. Den här funktionen är värdefull för användningsfall som multimodala data eller dokument med långa formulär, där en representation av innehållet med en enda vektor skulle leda till förlust av viktig information.
Begränsningar
- Semantisk rankning stöds inte för kapslade segment i ett komplext fält. Därför stöder den semantiska rankern inte kapslade vektorer i fält med flera vektorer.
Förstå stöd för fält med flera vektorer
Traditionellt sett kan vektortyper till exempel Collection(Edm.Single) bara användas i fält på den översta nivån. Med introduktionen av stöd för fält med flera vektorer kan du nu använda vektortyper i kapslade fält i komplexa samlingar, vilket gör att flera vektorer kan associeras med ett enda dokument.
Ett enda dokument kan innehålla upp till 100 vektorer totalt i alla komplexa samlingsfält. Vektorfält kan bara kapslas en nivå djupt.
Indexdefinition med flervektorfält
Inga nya indexegenskaper behövs för den här funktionen. Här är en exempelindexdefinition:
{
"name": "multivector-index",
"fields": [
{
"name": "id",
"type": "Edm.String",
"key": true,
"searchable": true
},
{
"name": "title",
"type": "Edm.String",
"searchable": true
},
{
"name": "description",
"type": "Edm.String",
"searchable": true
},
{
"name": "descriptionEmbedding",
"type": "Collection(Edm.Single)",
"dimensions": 3,
"searchable": true,
"retrievable": true,
"vectorSearchProfile": "hnsw"
},
{
"name": "scenes",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "embedding",
"type": "Collection(Edm.Single)",
"dimensions": 3,
"searchable": true,
"retrievable": true,
"vectorSearchProfile": "hnsw"
},
{
"name": "timestamp",
"type": "Edm.Int32",
"retrievable": true
},
{
"name": "description",
"type": "Edm.String",
"searchable": true,
"retrievable": true
},
{
"name": "framePath",
"type": "Edm.String",
"retrievable": true
}
]
}
]
}
Exempel på inmatningsdokument
Här är ett exempeldokument som visar hur du kan använda fält med flera vektorer i praktiken:
{
"id": "123",
"title": "Non-Existent Movie",
"description": "A fictional movie for demonstration purposes.",
"descriptionEmbedding": [1, 2, 3],
"releaseDate": "2025-08-01",
"scenes": [
{
"embedding": [4, 5, 6],
"timestamp": 120,
"description": "A character is introduced.",
"framePath": "nonexistentmovie\\scenes\\scene120.png"
},
{
"embedding": [7, 8, 9],
"timestamp": 2400,
"description": "The climax of the movie.",
"framePath": "nonexistentmovie\\scenes\\scene2400.png"
}
]
}
I det här exemplet är fältet scener en komplex samling som innehåller flera vektorer (inbäddningsfälten) tillsammans med andra associerade data. Varje vektor representerar en scen från filmen och kan användas för att hitta liknande scener i andra filmer, bland andra potentiella användningsfall.
Fråga med stöd för fält med flera vektorer
Stödfunktionen för flera vektorfält introducerar vissa ändringar i frågemekanismen i Azure AI-sökning. Den huvudsakliga frågeprocessen är dock i stort sett densamma.
vectorQueries Tidigare kunde endast målvektorfält definieras som indexfält på toppnivå. Med den här funktionen lättar vi på begränsningen och tillåter vectorQueries att rikta sig mot fält som är inkapslade i en samling komplexa typer (upp till en nivå djup).
Dessutom finns en ny frågetidsparameter tillgänglig: perDocumentVectorLimit.
- Att ställa in
perDocumentVectorLimittill1garanterar att högst en vektor per dokument matchas, vilket säkerställer att resultaten kommer från distinkta dokument. - Om du anger
perDocumentVectorLimittill0(obegränsad) kan flera relevanta vektorer från samma dokument matchas.
{
"vectorQueries": [
{
"kind": "text",
"text": "whales swimming",
"K": 50,
"fields": "scenes/embedding",
"perDocumentVectorLimit": 0
}
],
"select": "title, scenes/timestamp, scenes/framePath"
}
Rangordna över flera vektorer i ett enda fält
När flera vektorer är associerade med ett enda dokument använder Azure AI-sökning den högsta poängen bland dem för rangordning. Systemet använder den mest relevanta vektorn för att poängsätta varje dokument, vilket förhindrar utspädning med mindre relevanta.
Hämta relevanta element i en samling
När en samling komplexa typer ingår i parametern $select returneras endast de element som matchade vektorfrågan. Detta är användbart för att hämta associerade metadata, till exempel tidsstämplar, textbeskrivningar eller bildsökvägar.
Observera
Undvik att inkludera själva vektorvärdena i parametern för att minska nyttolaststorleken $select . Överväg att utelämna vektorlagring helt och hållet om det är onödigt.
Felsöka frågor med flera vektorer (förhandsversion)
När ett dokument innehåller flera inbäddade vektorer, till exempel text- och bildinbäddningar i olika underfält, använder systemet den högsta vektorpoängen för alla element för att rangordna dokumentet.
Om du vill felsöka hur varje vektor bidrog använder du felsökningsläget innerHits (tillgängligt i den senaste förhandsversionens REST API).
POST /indexes/my-index/docs/search?api-version=2026-08-01-preview
{
"vectorQueries": [
{
"kind": "vector",
"field": "keyframes.imageEmbedding",
"kNearestNeighborsCount": 5,
"vector": [ /* query vector */ ]
}
],
"debug": "innerHits"
}
Exempel på svarsform
"@search.documentDebugInfo": {
"innerHits": {
"keyframes": [
{
"ordinal": 0,
"vectors": [
{
"imageEmbedding": {
"searchScore": 0.958,
"vectorSimilarity": 0.956
},
"textEmbedding": {
"searchScore": 0.958,
"vectorSimilarity": 0.956
}
}
]
},
{
"ordinal": 1,
"vectors": [
{
"imageEmbedding": null,
"textEmbedding": {
"searchScore": 0.872,
"vectorSimilarity": 0.869
}
}
]
}
]
}
}
Fältbeskrivningar
| Fältet | Beskrivning |
|---|---|
ordinal |
Nollbaserat index för elementet i samlingen. |
vectors |
En post per sökbart vektorfält som finns i elementet. |
searchScore |
Slutpoäng för det här fältet, efter eventuell omvärdering och förstärkning. |
vectorSimilarity |
Rå likhet som returneras av avståndsfunktionen. |
Observera
innerHits rapporterar för närvarande endast vektorfält.
Förhållande till debug=vektor
Här följer några fakta om den här egenskapen:
Den befintliga
debug=vectorväxeln förblir oförändrad.När det används med fält med flera vektorer
@search.documentDebugInfo.vector.subscorevisar den maximala poäng som används för att rangordna det överordnade dokumentet, men inte detaljer per element.Använd
innerHitsför att få insikt i hur enskilda element bidrog till poängen.