Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dieses Feature befindet sich derzeit in der Vorschau. Diese Vorschau wird ohne Vereinbarung auf Serviceebene bereitgestellt und wird für Produktionsworkloads nicht empfohlen. Bestimmte Features werden möglicherweise nicht unterstützt oder weisen eingeschränkte Funktionen auf. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.
Mit dem Feature zur Unterstützung mehrerer Vektorfelder in Azure KI-Suche können Sie mehrere untergeordnete Vektoren in einem einzelnen Dokumentfeld indizieren. Diese Funktion ist nützlich für Anwendungsfälle wie multimodale Daten oder langformige Dokumente, bei denen die Darstellung des Inhalts mit einem einzelnen Vektor zu einem Verlust wichtiger Details führen würde.
Einschränkungen
- Der semantische Rangierer wird für geschachtelte Blöcke innerhalb eines komplexen Felds nicht unterstützt. Daher unterstützt der semantische Ranker keine geschachtelten Vektoren in Multivektorfeldern.
Verständnis für die Unterstützung von Multi-Vektor-Feldern
Traditionell können Vektortypen beispielsweise Collection(Edm.Single) nur in Feldern der obersten Ebene verwendet werden. Mit der Einführung der Multivektorfeldunterstützung können Sie jetzt Vektortypen in geschachtelten Feldern komplexer Auflistungen verwenden, wodurch mehrere Vektoren einem einzelnen Dokument zugeordnet werden können.
Ein einzelnes Dokument kann bis zu 100 Vektoren insgesamt in allen komplexen Sammlungsfeldern enthalten. Vektorfelder können nur eine Ebene tief geschachtelt werden.
Indexdefinition mit Multivektorfeld
Für dieses Feature sind keine neuen Indexeigenschaften erforderlich. Hier ist eine Beispielindexdefinition:
{
"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
}
]
}
]
}
Beispiel für ein Erfassungsdokument
Im Folgenden finden Sie ein Beispieldokument, in dem veranschaulicht wird, wie Sie Vektorfelder in der Praxis verwenden können:
{
"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 diesem Beispiel ist das Szenenfeld eine komplexe Auflistung, die mehrere Vektoren (die Einbettungsfelder) sowie andere zugeordnete Daten enthält. Jeder Vektor stellt eine Szene aus dem Film dar und kann verwendet werden, um ähnliche Szenen in anderen Filmen zu finden, unter anderem potenzielle Anwendungsfälle.
Abfrage mit Unterstützung für mehrvektorbasierte Felder
Die Unterstützungsfunktion für multivektorbasierte Felder führt einige Änderungen am Abfragemechanismus in Azure KI-Suche ein. Der Hauptabfrageprozess bleibt jedoch weitgehend gleich.
Bisher konnte vectorQueries nur Vektorfelder ansprechen, die als Indexfelder auf der obersten Ebene definiert sind. Mit diesem Feature lockern wir diese Einschränkung und ermöglichen es VectorQueries, Felder anzuvisieren, die in einer Sammlung komplexer Typen geschachtelt sind (bis zu einer Ebene).
Darüber hinaus ist ein neuer Abfragezeitparameter verfügbar: perDocumentVectorLimit.
- Die Einstellung von
perDocumentVectorLimitauf1stellt sicher, dass höchstens ein Vektor pro Dokument übereinstimmt, wodurch garantiert wird, dass die Ergebnisse aus unterschiedlichen Dokumenten stammen. - Durch Festlegen
perDocumentVectorLimitauf0(unbegrenzt) können mehrere relevante Vektoren aus demselben Dokument abgeglichen werden.
{
"vectorQueries": [
{
"kind": "text",
"text": "whales swimming",
"K": 50,
"fields": "scenes/embedding",
"perDocumentVectorLimit": 0
}
],
"select": "title, scenes/timestamp, scenes/framePath"
}
Rangieren über mehrere Vektoren in einem einzelnen Feld
Wenn mehrere Vektoren einem einzelnen Dokument zugeordnet sind, verwendet Azure KI-Suche die maximale Bewertung unter ihnen für die Rangfolge. Das System verwendet den relevantesten Vektor, um jedes Dokument zu ermitteln, wodurch die Verdünnung durch weniger relevante verhindert wird.
Abrufen relevanter Elemente in einer Auflistung
Wenn eine Auflistung komplexer Typen im $select Parameter enthalten ist, werden nur die Elemente zurückgegeben, die der Vektorabfrage entsprechen. Dies ist nützlich, um zugeordnete Metadaten wie Zeitstempel, Textbeschreibungen oder Bildpfade abzurufen.
Hinweis
Um die Nutzlastgröße zu verringern, vermeiden Sie die Einbeziehung der Vektorwerte selbst in den $select Parameter. Erwägen Sie, Vektorspeicher vollständig auszulassen, wenn sie nicht erforderlich sind.
Debuggen von Mehrvektorabfragen (Vorschau)
Wenn ein Dokument mehrere eingebettete Vektoren enthält, z. B. Text- und Bildeinbettungen in verschiedene Unterfelder, verwendet das System die höchste Vektorbewertung für alle Elemente, um das Dokument zu bewerten.
Um zu debuggen, wie jeder Vektor beigetragen hat, verwenden Sie den innerHits Debugmodus (verfügbar in der neuesten Vorschau-REST-API).
POST /indexes/my-index/docs/search?api-version=2026-05-01-preview
{
"vectorQueries": [
{
"kind": "vector",
"field": "keyframes.imageEmbedding",
"kNearestNeighborsCount": 5,
"vector": [ /* query vector */ ]
}
],
"debug": "innerHits"
}
Beispielantwortstruktur
"@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
}
}
]
}
]
}
}
Feldbeschreibungen
| Feld | Beschreibung |
|---|---|
ordinal |
Nullbasierter Index des Elements innerhalb der Auflistung. |
vectors |
Ein Eintrag pro durchsuchbarem Vektorfeld, das im Element enthalten ist. |
searchScore |
Endergebnis für dieses Feld nach jeder Erneuerung und Optimierung. |
vectorSimilarity |
Rohe Ähnlichkeit, die von der Abstandsfunktion zurückgegeben wird. |
Hinweis
innerHits meldet derzeit nur Vektorfelder.
Beziehung zum Debug=Vektor
Hier sind einige Fakten zu diesem Merkmal:
Der vorhandene
debug=vectorSwitch bleibt unverändert.Bei der Verwendung mit Multivektorfeldern zeigt
@search.documentDebugInfo.vector.subscoreden maximalen Score an, der zur Einstufung des übergeordneten Dokuments herangezogen wurde, jedoch keine Details zu den einzelnen Elementen.Verwenden Sie
innerHits, um Einblicke zu erhalten, wie einzelne Elemente zur Bewertung beigetragen haben.