Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nota
Pesquisa de IA do Azure está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.
Nota
Esse recurso está atualmente em versão prévia. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou ter recursos restritos. Para obter mais informações, consulte Supplemental Terms of Use for Microsoft Azure Previews.
O recurso de suporte de campo multivetorial no Pesquisa de IA do Azure permite indexar múltiplos vetores filho em um único campo de documento. Esse recurso é valioso para casos de uso, como dados multimodal ou documentos de forma longa, em que representar o conteúdo com um único vetor levaria à perda de detalhes importantes.
Limitações
- O classificador semântico não tem suporte para partes aninhadas em um campo complexo. Portanto, o classificador semântico não dá suporte a vetores aninhados em campos de vários vetores.
Entender o suporte a campos de vários vetores
Tradicionalmente, os tipos de vetor, por exemplo Collection(Edm.Single) , só podiam ser usados em campos de nível superior. Com a introdução do suporte a campos de vários vetores, 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 de vetor só podem ser aninhados em um nível profundo.
Definição de índice com campo de vários vetores
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
}
]
}
]
}
Documento exemplar de ingestão de dados
Aqui está um documento de exemplo que ilustra como você pode usar campos de vários vetores 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 vários vetores (os campos de inserçã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 possíveis casos de uso.
Consulta com suporte a campos de vários vetores
O recurso de suporte ao campo de vários vetores apresenta algumas alterações no mecanismo de consulta em Pesquisa de IA do Azure . No entanto, o processo de consulta principal permanece praticamente o mesmo.
Anteriormente, vectorQueries só era possível direcionar campos de vetor definidos como campos de índice de nível superior. Com esse recurso, estamos relaxando essa restrição e permitindo que vectorQueries direcionem 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.
- A definição de
perDocumentVectorLimitpara1garante que, no máximo, um vetor por documento seja correspondido, assegurando 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"
}
Classificar entre vários vetores em um único campo
Quando vários vetores são associados a um único documento, Pesquisa de IA do Azure usa a pontuação máxima entre eles para classificação. O sistema usa o vetor mais relevante para pontuar cada documento, o que impede a diluição por 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 corresponderam à consulta de vetor são retornados. Isso é útil para recuperar metadados associados, como timestamps, descrições de texto ou caminhos de imagem.
Nota
Para reduzir o tamanho da carga, evite incluir os próprios valores de vetor no $select parâmetro. Considere omitir o armazenamento de vetor inteiramente se não for necessário.
Depurar consultas de vários vetores (versão prévia)
Quando um documento inclui vários vetores inseridos, como inserções de texto e imagem em subcampos diferentes, o sistema usa a pontuação de vetor 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 versão prévia mais recente).
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"
}
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 campo
| Campo | Descrição |
|---|---|
ordinal |
Índice baseado em zero do elemento dentro da coleção. |
vectors |
Uma entrada por campo de vetor pesquisável contido no elemento. |
searchScore |
Pontuação final desse campo, após reavaliações e aprimoramentos. |
vectorSimilarity |
Similaridade bruta retornada pela função de distância. |
Nota
innerHits atualmente, relata apenas campos de vetor.
Relação com debug=vector
Aqui estão alguns fatos sobre esta propriedade:
O comutador 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 com detalhes por elemento.Use
innerHitspara obter informações sobre como os elementos individuais contribuíram para a pontuação.