Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
Esta funcionalidade está atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
O recurso de suporte de campo multivetorial na Pesquisa de IA do Azure permite indexar vários vetores filho em um único campo de documento. Esse recurso é valioso para casos de uso, como dados multimodais ou documentos de formato longo, em que representar o conteúdo com um único vetor levaria à perda de detalhes importantes.
Limitações
- O classificador semântico não é suportado para blocos aninhados dentro de um campo complexo. Portanto, o classificador semântico não suporta vetores aninhados em campos multivetoriais.
Compreender o suporte de campo multivetorial
Tradicionalmente, os tipos vetoriais, por exemplo Collection(Edm.Single) , só podiam ser usados em campos de nível superior. Com a introdução do suporte a campos multivetoriais, agora você pode usar tipos de vetor em campos aninhados de coleções complexas, permitindo efetivamente que vários vetores sejam associados a um único documento.
Um único documento pode incluir até 100 vetores no total, em todos os campos de coleção complexos. Os campos vetoriais só podem ser aninhados a um nível de profundidade.
Definição de índice com campo multivetorial
Nenhuma nova propriedade de índice é necessária para esse recurso. Aqui está uma definição de índice de exemplo:
{
"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
}
]
}
]
}
Amostra de documento de ingestão
Aqui está um documento de exemplo que ilustra como você 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 de cenas é uma coleção complexa que contém vários vetores (os campos de incorporação), juntamente com outros dados associados. Cada vetor representa uma cena do filme e pode ser usado para encontrar cenas semelhantes em outros filmes, entre outros casos de uso potenciais.
Consulta com suporte de campo multivetorial
O recurso de suporte de campo multivetorial introduz algumas alterações no mecanismo de consulta no Azure AI Search. No entanto, o processo principal de consulta permanece basicamente o mesmo.
Anteriormente, vectorQueries só era possível direcionar campos vetoriais definidos como campos de índice de nível superior. Com esse recurso, estamos relaxando essa restrição e permitindo que vectorQueries direcione campos aninhados em uma coleção de tipos complexos (até um nível de profundidade).
Além disso, um novo parâmetro de tempo de consulta está disponível: perDocumentVectorLimit.
- Definir
perDocumentVectorLimitpara1garante que um vetor por documento seja no máximo associado, garantindo que os resultados venham de documentos distintos. - A configuração
perDocumentVectorLimitcomo0(ilimitada) permite que vários 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"
}
Ordenar em vários vetores num único campo
Quando vários vetores são associados a um único documento, a Pesquisa de IA do Azure usa a pontuação máxima entre eles para 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 em uma coleção
Quando uma coleção de tipos complexos é incluída no $select parâmetro, somente os elementos que correspondem à consulta vetorial são retornados. Isso é útil para recuperar metadados associados, como timestamps, descrições de texto ou caminhos de imagem.
Observação
Para reduzir o tamanho da carga útil, evite incluir os próprios valores vetoriais no $select parâmetro. Considere omitir totalmente o armazenamento vetorial, se desnecessário.
Depurar consultas multivetoriais (pré-visualização)
Quando um documento inclui vários vetores incorporados, como incorporações de texto e imagem em subcampos diferentes, o sistema usa a pontuação vetorial mais alta em todos os elementos para classificar o documento.
Para depurar como cada vetor contribuiu, use o innerHits modo de depuração (disponível na API REST de visualização mais recente).
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"
}
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 dos campos
| Campo | Descrição |
|---|---|
ordinal |
Índice baseado em zero do elemento dentro da coleção. |
vectors |
Uma entrada por campo vetorial pesquisável contido no elemento . |
searchScore |
Placar final para esse campo, após qualquer remarcação e reforços. |
vectorSimilarity |
Semelhança bruta retornada pela função de distância. |
Observação
innerHits atualmente relata apenas campos vetoriais.
Relação com debug=vetor
Aqui estão alguns factos sobre esta propriedade:
O interruptor existente
debug=vectorpermanece inalterado.Quando usado com campos multivetoriais,
@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 informações sobre como elementos individuais contribuíram para a pontuação.