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 ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel (SLA) bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Mit dem Feature zur Unterstützung mehrerer Vektorfelder in Azure AI Search 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 Rangfolger keine geschachtelten Vektoren in mehrdimensionalen Vektorfeldern.
Unterstützung für Multi-Vektorfelder verstehen
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 AI Search ein. Der Hauptabfrageprozess bleibt jedoch weitgehend gleich.
Bisher konnte vectorQueries nur auf als oberste Indexfelder definierte Vektorfelder abzielen. Mit diesem Feature entspannen wir diese Einschränkung und ermöglichen vectorQueries das Ziel von Feldern, die in einer Sammlung komplexer Typen geschachtelt sind (bis zu einer Ebene tief).
Darüber hinaus ist ein neuer Abfragezeitparameter verfügbar: perDocumentVectorLimit.
- Die Einstellung von
perDocumentVectorLimitauf1stellt sicher, dass höchstens ein Vektor pro Dokument übereinstimmt und garantiert, dass 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"
}
Einordnen über mehrere Vektoren in einem einzelnen Feld
Wenn mehrere Vektoren einem einzelnen Dokument zugeordnet sind, verwendet Azure AI Search 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=2025-11-01-preview
{
"vectorQueries": [
{
"kind": "vector",
"field": "keyframes.imageEmbedding",
"kNearestNeighborsCount": 5,
"vector": [ /* query vector */ ]
}
],
"debug": "innerHits"
}
Beispielantwort-Form
"@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 Korrektur und Verstärkung. |
vectorSimilarity |
Rohähnlichkeit, die von der Abstandsfunktion zurückgegeben wird. |
Hinweis
innerHits meldet derzeit nur Vektorfelder.
Beziehung zum Debug=Vektor
Hier sind einige Fakten zu dieser Immobilie:
Der vorhandene
debug=vectorSwitch bleibt unverändert.Bei Verwendung mit Mehrfachvektorfeldern zeigt
@search.documentDebugInfo.vector.subscoredie maximale Bewertung an, die zur Bewertung des übergeordneten Dokuments verwendet wird, jedoch nicht die detaillierten Angaben zu einzelnen Elementen.Verwenden Sie
innerHits, um Einblick in den Beitrag einzelner Elemente zur Punktzahl zu erhalten.