Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nota
O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.
Importante
Funcionalidades, capacidades ou propriedades assinaladas (pré-visualização) não são abrangidas por um acordo de nível de serviço, não são recomendadas para cargas de trabalho em produção e podem mudar ou ser limitadas antes de se tornarem geralmente disponíveis. Os termos de pré-visualização do Pesquisa de IA do Azure aplicam-se a todas as funcionalidades de pré-visualização, sejam independentes ou parte de uma funcionalidade geralmente disponível.
A funcionalidade de suporte a campos multivetor (pré-visualização) no Pesquisa de IA do Azure permite-lhe indexar múltiplos vetores filhos num único campo do documento. Esta funcionalidade é valiosa para casos de uso como dados multimodais ou documentos de formato longo, onde representar o conteúdo com um único vetor levaria à perda de detalhes importantes.
Limitações
- O ranker semântico não é suportado para blocos aninhados dentro de um campo complexo. Portanto, o ranqueador semântico não suporta vetores aninhados em campos multi-vetoriais.
Compreender o suporte de campos multivetoriais
Tradicionalmente, os tipos vetoriais, por exemplo Collection(Edm.Single) , só podiam ser usados em campos de topo. Com a introdução do suporte de campos multivetoriais, pode agora usar tipos vetoriais em campos aninhados de coleções complexas, permitindo efetivamente que múltiplos vetores sejam associados a um único documento.
Um único documento pode incluir até 100 vetores no total, em todos os campos complexos de recolha. Os campos vetoriais só podem ser aninhados a um nível de profundidade.
Definição de índice com campo multivetorial
Não são necessárias novas propriedades de índice para esta funcionalidade. Aqui está um exemplo de definição de índice:
{
"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
}
]
}
]
}
Exemplo de documento de ingestão
Aqui está um documento de exemplo que ilustra como pode usar campos multivetoriais na prática:
{
"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"
}
]
}
Neste exemplo, o campo cenas é uma coleção complexa que contém múltiplos vetores (os campos de embedding), juntamente com outros dados associados. Cada vetor representa uma cena do filme e pode ser usado para encontrar cenas semelhantes noutros filmes, entre outros potenciais casos de uso.
Consulta com suporte a campos multivetoriais
A funcionalidade de suporte a campos multivetores introduz algumas alterações ao mecanismo de consulta no Pesquisa de IA do Azure. No entanto, o principal processo de consulta mantém-se, em grande parte, o mesmo.
Anteriormente, vectorQueries só podia direcionar campos vetoriais definidos como campos de índice de topo. Com esta funcionalidade, estamos a relaxar esta restrição e a permitir que os vectorQueries alvejem campos que estão aninhados dentro de uma coleção de tipos complexos (até um nível de profundidade).
Adicionalmente, está disponível um novo parâmetro de tempo de consulta: perDocumentVectorLimit.
- Definir
perDocumentVectorLimitcomo1assegura que, no máximo, apenas um vetor por documento seja correspondido, garantindo que os resultados provêm de documentos distintos. - Definir
perDocumentVectorLimitpara0(ilimitado) permite que múltiplos vetores relevantes do mesmo documento sejam correspondidos.
{
"vectorQueries": [
{
"kind": "text",
"text": "whales swimming",
"K": 50,
"fields": "scenes/embedding",
"perDocumentVectorLimit": 0
}
],
"select": "title, scenes/timestamp, scenes/framePath"
}
Classificar através de múltiplos vetores num único campo
Quando múltiplos vetores estão associados a um único documento, o Pesquisa de IA do Azure utiliza a pontuação máxima entre eles para a classificação. O sistema utiliza o vetor mais relevante para pontuar cada documento, o que evita a diluição por outros menos relevantes.
Recuperar elementos relevantes numa coleção
Quando uma coleção de tipos complexos é incluída no $select parâmetro, apenas os elementos que corresponderam à consulta vetorial são retornados. Isto é útil para recuperar metadados associados, como carimbos temporais, descrições de texto ou caminhos de imagens.
Nota
Para reduzir o tamanho da carga útil, evite incluir os próprios valores vetoriais no $select parâmetro. Considere omitir completamente o armazenamento vetorial se não for necessário.
Depurar consultas multivetoriais (pré-visualização)
Quando um documento inclui múltiplos vetores incorporados, como inserções de texto e imagem em diferentes subcampos, o sistema utiliza a pontuação vetorial mais alta em todos os elementos para classificar o documento.
Para depurar como cada vetor contribuiu, utilize o innerHits modo de depuração (disponível na mais recente API REST de pré-visualização).
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"
}
Exemplo de forma de resposta
"@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
}
}
]
}
]
}
}
Descrições de campos
| Campo | Descrição |
|---|---|
ordinal |
Índice baseado em zero do elemento dentro da coleção. |
vectors |
Uma entrada por cada campo vetorial pesquisável contido no elemento. |
searchScore |
Pontuação final deste campo, após qualquer reclassificação e incrementos. |
vectorSimilarity |
Semelhança bruta devolvida pela função distância. |
Nota
innerHits Atualmente reporta apenas campos vetoriais.
Relação com debug=vector
Aqui estão alguns factos sobre esta propriedade:
O interruptor existente
debug=vectormantém-se inalterado.Quando usado com campos multi-vetor,
@search.documentDebugInfo.vector.subscoremostra a pontuação máxima usada para classificar o documento pai, mas não o detalhe por elemento.Use
innerHitspara obter uma perceção de como os elementos individuais contribuíram para a banda sonora.