Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Azure AI Zoeken is beschikbaar via de Azure-portal, REST API's en Azure-SDK's. Het vormt ook een basis voor Foundry IQ, de beheerde kennislaag die bedrijfsinhoud transformeert in herbruikbare, machtigingsbewuste knowledge bases voor agents in de Microsoft Foundry-portal.
Important
Functies, mogelijkheden of eigenschappen die zijn gemarkeerd (preview) vallen niet onder een service level agreement, worden niet aanbevolen voor productieworkloads en kunnen worden gewijzigd of beperkt voordat ze algemeen beschikbaar worden. De Azure AI Zoeken preview-voorwaarden zijn van toepassing op alle preview-functionaliteit, ongeacht of deze zelfstandig is of deel uitmaakt van een algemeen beschikbare functie.
Met de functie voor ondersteuning voor meerdere vectorvelden (preview) in Azure AI Zoeken kunt u meerdere onderliggende vectoren in één documentveld indexeren. Deze functie is waardevol voor gebruiksvoorbeelden zoals multimodale gegevens of lange documenten, waarbij het vertegenwoordigen van de inhoud met één vector tot verlies van belangrijke details zou leiden.
Beperkingen
- Semantische rangschikking wordt niet ondersteund voor geneste brokken binnen een complex veld. Daarom biedt de semantische ranker geen ondersteuning voor geneste vectoren in velden met meerdere vectoren.
Meer informatie over ondersteuning voor multivectorvelden
Traditioneel konden vectortypen bijvoorbeeld Collection(Edm.Single) alleen worden gebruikt in velden op het hoogste niveau. Met de introductie van multivectorveldondersteuning kunt u nu vectortypen gebruiken in geneste velden van complexe verzamelingen, zodat meerdere vectoren aan één document kunnen worden gekoppeld.
Eén document kan in totaal maximaal 100 vectoren bevatten voor alle complexe verzamelingsvelden. Vectorvelden kunnen slechts één niveau diep worden genest.
Indexdefinitie met multivectorveld
Er zijn geen nieuwe indexeigenschappen nodig voor deze functie. Hier volgt een voorbeeld van een indexdefinitie:
{
"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
}
]
}
]
}
Voorbeeld van opnamedocument
Hier volgt een voorbeelddocument waarin wordt geïllustreerd hoe u velden met meerdere vectoren in de praktijk kunt gebruiken:
{
"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"
}
]
}
In dit voorbeeld is het veld Scènes een complexe verzameling met meerdere vectoren (de ingesloten velden), samen met andere gekoppelde gegevens. Elke vector vertegenwoordigt een scène uit de film en kan worden gebruikt om vergelijkbare scènes in andere films te vinden, onder andere mogelijke gebruiksvoorbeelden.
Query's uitvoeren met ondersteuning voor meerdere vectorvelden
De ondersteuningsfunctie voor meerdere vectorvelden introduceert enkele wijzigingen in het querymechanisme in Azure AI Zoeken. Het hoofdqueryproces blijft echter grotendeels hetzelfde.
vectorQueries Voorheen konden alleen doelvectorvelden worden gedefinieerd als indexvelden op het hoogste niveau. Met deze functie versoepelen we deze beperking en stellen we vectorQueries in staat om velden te richten die geneste zijn binnen een verzameling van complexe typen (tot één niveau diep).
Daarnaast is er een nieuwe querytijdparameter beschikbaar: perDocumentVectorLimit.
- Door
perDocumentVectorLimitin te stellen op1wordt ervoor gezorgd dat maximaal één vector per document overeenkomt, waarmee gegarandeerd is dat de resultaten uit verschillende documenten komen. - Als u
perDocumentVectorLimitinstelt op0(onbeperkt), kunnen meerdere relevante vectoren uit hetzelfde document worden vergeleken.
{
"vectorQueries": [
{
"kind": "text",
"text": "whales swimming",
"K": 50,
"fields": "scenes/embedding",
"perDocumentVectorLimit": 0
}
],
"select": "title, scenes/timestamp, scenes/framePath"
}
Rangschikken over meerdere vectoren in één veld
Wanneer meerdere vectoren aan één document zijn gekoppeld, Azure AI Zoeken de maximumscore ervan gebruikt voor rangschikking. Het systeem gebruikt de meest relevante vector om elk document te scoren, waardoor verdunning door minder relevante documenten wordt voorkomen.
Relevante elementen in een verzameling ophalen
Wanneer een verzameling complexe typen wordt opgenomen in de $select parameter, worden alleen de elementen geretourneerd die overeenkomen met de vectorquery. Dit is handig voor het ophalen van gekoppelde metagegevens, zoals tijdstempels, tekstbeschrijvingen of afbeeldingspaden.
Opmerking
Als u de nettolading wilt verkleinen, moet u voorkomen dat u de vectorwaarden zelf in de $select parameter opneemt. Overweeg om vectoropslag volledig weg te laten als dit niet nodig is.
Fouten opsporen in query's met meerdere vectoren (preview)
Wanneer een document meerdere ingesloten vectoren bevat, zoals tekst- en afbeeldingsbesluitingen in verschillende subvelden, gebruikt het systeem de hoogste vectorscore voor alle elementen om het document te rangschikken.
Als u fouten wilt opsporen in de manier waarop elke vector heeft bijgedragen, gebruikt u de innerHits foutopsporingsmodus (beschikbaar in de nieuwste preview-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"
}
Voorbeeld van antwoordpatroon
"@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
}
}
]
}
]
}
}
Veldbeschrijvingen
| Veld | Beschrijving |
|---|---|
ordinal |
Op nul gebaseerde index van het element in de verzameling. |
vectors |
Eén vermelding per doorzoekbaar vectorveld in het element. |
searchScore |
Eindscore voor dat veld, na eventuele herberekeningen en verhogingen. |
vectorSimilarity |
Onbewerkte gelijkenis die wordt geretourneerd door de afstandsfunctie. |
Opmerking
innerHits rapporteert momenteel alleen vectorvelden.
Relatie met foutopsporing=vector
Hier volgen enkele feiten over deze eigenschap:
De bestaande
debug=vectorswitch blijft ongewijzigd.Bij gebruik met velden met meerdere vectoren geeft
@search.documentDebugInfo.vector.subscoreu de maximumscore weer die wordt gebruikt om het bovenliggende document te rangschikken, maar niet per element.Gebruik
innerHitsdeze functie om inzicht te krijgen in de manier waarop afzonderlijke elementen hebben bijgedragen aan de score.