Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.
Importante
Le funzionalità, le funzionalità o le proprietà contrassegnate (anteprima) non sono coperte da un contratto di servizio, non sono consigliate per i carichi di lavoro di produzione e potrebbero cambiare o essere vincolate prima che diventino disponibili a livello generale. Le condizioni di anteprima Azure AI Search si applicano a tutte le funzionalità di anteprima, indipendente o parte di una funzionalità disponibile a livello generale.
La funzionalità di supporto per i campi multivettore (anteprima) in Azure AI Search consente di indicizzare più vettori secondari all'interno di un singolo campo di documento. Questa funzionalità è utile per i casi d'uso come dati multimodali o documenti di lunga durata, in cui la rappresentazione del contenuto con un singolo vettore comporta la perdita di dettagli importanti.
Limitazioni
- Il ranker semantico non è supportato per i blocchi annidati all'interno di un campo complesso. Di conseguenza, il ranker semantico non supporta vettori annidati in campi multi-vettoriali.
Comprendere il supporto dei campi a più vettori
Tradizionalmente, i tipi vettoriali, ad esempio Collection(Edm.Single) , possono essere usati solo nei campi di primo livello. Con l'introduzione del supporto dei campi multi-vettore, è ora possibile usare i tipi di vettore nei campi annidati di raccolte complesse, consentendo in modo efficace l'associazione di più vettori a un singolo documento.
Un singolo documento può includere fino a 100 vettori in totale, in tutti i campi di raccolta complessi. I campi vettoriali possono essere annidati a un solo livello.
Definizione dell'indice con campo multi-vettore
Per questa funzionalità non sono necessarie nuove proprietà di indice. Ecco una definizione di indice di esempio:
{
"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
}
]
}
]
}
Documento di inserimento di esempio
Ecco un documento di esempio che illustra come usare campi multi-vettore in pratica:
{
"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 questo esempio, il campo scene è una raccolta complessa contenente più vettori (campi di incorporamento), insieme ad altri dati associati. Ogni vettore rappresenta una scena del film e può essere usata per trovare scene simili in altri film, tra gli altri potenziali casi d'uso.
Query con supporto di campi multi-vettore
La funzionalità di supporto dei campi multi-vettore introduce alcune modifiche al meccanismo di query in Azure AI Search. Tuttavia, il processo di interrogazione principale rimane per lo più invariato.
In precedenza, vectorQueries poteva puntare solo ai campi vettoriali definiti come campi di indice di primo livello. Con questa funzionalità, questa restrizione viene rilassata e si consente a vectorQueries di indirizzare i campi annidati all'interno di una raccolta di tipi complessi (fino a un livello profondo).
Inoltre, è disponibile un nuovo parametro ora di query: perDocumentVectorLimit.
- L'impostazione
perDocumentVectorLimitsu1garantisce che al massimo un vettore per ogni documento corrisponda, garantendo che i risultati provengano da documenti distinti. - L'impostazione
perDocumentVectorLimitsu0(illimitato) consente la possibilità di corrispondenza di più vettori rilevanti dello stesso documento.
{
"vectorQueries": [
{
"kind": "text",
"text": "whales swimming",
"K": 50,
"fields": "scenes/embedding",
"perDocumentVectorLimit": 0
}
],
"select": "title, scenes/timestamp, scenes/framePath"
}
Classificare più vettori in un singolo campo
Quando più vettori sono associati a un singolo documento, Azure AI Search usa il punteggio massimo tra di essi per la classificazione. Il sistema usa il vettore più rilevante per assegnare un punteggio a ogni documento, che impedisce la diluizione di quelli meno rilevanti.
Recuperare gli elementi pertinenti in una raccolta
Quando nel parametro è inclusa $select una raccolta di tipi complessi, vengono restituiti solo gli elementi corrispondenti alla query vettoriale. Ciò è utile per recuperare metadati associati, ad esempio timestamp, descrizioni di testo o percorsi di immagine.
Nota
Per ridurre le dimensioni del payload, evitare di includere i valori vettoriali stessi nel $select parametro . È consigliabile omettere completamente l'archiviazione vettoriale se non necessario.
Eseguire il debug di query a più vettori (anteprima)
Quando un documento include più vettori incorporati, ad esempio incorporamenti di testo e immagine in sottocampi diversi, il sistema usa il punteggio di vettore più alto in tutti gli elementi per classificare il documento.
Per eseguire il debug del contributo di ogni vettore, usare la innerHits modalità di debug (disponibile nell'API REST di anteprima più recente).
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"
}
Forma di risposta di esempio
"@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
}
}
]
}
]
}
}
Descrizioni dei campi
| Campo | Descrizione |
|---|---|
ordinal |
Indice in base zero dell'elemento all'interno dell'insieme. |
vectors |
Una voce per ogni campo vettoriale ricercabile contenuto nell'elemento. |
searchScore |
Punteggio finale per quel campo, dopo eventuali rivalutazioni e potenziamenti. |
vectorSimilarity |
Somiglianza non elaborata restituita dalla funzione distance. |
Nota
innerHits attualmente segnala solo i campi vettoriali.
Relazione con debug=vector
Ecco alcuni fatti su questa proprietà:
L'opzione esistente
debug=vectorrimane invariata.Quando usato con campi multi-vettore,
@search.documentDebugInfo.vector.subscoremostra il punteggio massimo utilizzato per classificare il documento padre, ma non il dettaglio di ogni elemento.Usare
innerHitsper ottenere informazioni dettagliate sul modo in cui i singoli elementi hanno contribuito al punteggio.