Este artigo explica como executar pesquisas de similaridade em coleções usando uma API HTTP.
Pré-requisitos
- Cluster Criado: Veja como criar um cluster aqui.
- API-KEY Obtida: Gerencie suas chaves de API aqui.
Método e URL
Usamos o método HTTP POST para enviar consultas de pesquisa.
POST https://{Endpoint}/v1/collections/{CollectionName}/query
Exemplos de Uso
Pesquisa por Vetor
Execute uma pesquisa baseada em um vetor específico.
curl -X POST \
-H 'dashvector-auth-token: SUA_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vetor": [0.1, 0.2, 0.3, 0.4],
"topk": 10,
"incluir_vetor": true
}' https://SEU_ENDPOINT/v1/collections/minha_colecao/query
Resultado Esperado:
{
"código": 0,
"id_requisição": "2cd1cac7-f1ee-4d15-82a8-b65e75d8fd13",
"mensagem": "Sucesso",
"resultados": [
{
"id": "1",
"vetor": [
0.10000000149011612,
0.20000000298023224,
0.30000001192092896,
0.4000000059604645
],
"campos": {
"nome": "zhangshan",
"peso": null,
"idade": 20,
"qualquer_chave": "qualquer_valor"
},
"score": 0.3
}
]
}
Pesquisa por Chave Primária
Pesquise usando a chave primária de um documento.
curl -X POST \
-H 'dashvector-auth-token: SUA_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"id_do_documento": "1",
"topk": 1,
"incluir_vetor": true
}' https://SEU_ENDPOINT/v1/collections/minha_colecao/query
Resultado Esperado:
{
"código": 0,
"id_requisição": "fab4e8a2-15e4-4b55-816f-3b66b7a44962",
"mensagem": "Sucesso",
"resultados": [
{
"id": "1",
"vetor": [
0.10000000149011612,
0.20000000298023224,
0.30000001192092896,
0.4000000059604645
],
"campos": {
"nome": "zhangshan",
"peso": null,
"idade": 20,
"qualquer_chave": "qualquer_valor"
},
"score": 0.3
}
]
}
Pesquisa com Filtros
Adicione condições de filtragem em suas pesquisas.
curl -X POST \
-H 'dashvector-auth-token: SUA_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"filtro": "idade > 18",
"topk": 1,
"incluir_vetor": true
}' https://SEU_ENDPOINT/v1/collections/minha_colecao/query
Resultado Esperado:
{
"código": 0,
"id_requisição": "4c7331d8-fba1-4c3a-8673-124568670de7",
"mensagem": "Sucesso",
"resultados": [
{
"id": "1",
"vetor": [
0.10000000149011612,
0.20000000298023224,
0.30000001192092896,
0.4000000059604645
],
"campos": {
"nome": "zhangshan",
"peso": null,
"idade": 20,
"qualquer_chave": "qualquer_valor"
},
"score": 0.0
}
]
}
Pesquisa com Vetores Ralos
Realize pesquisas usando vetores ralos.
curl -X POST \
-H 'dashvector-auth-token: SUA_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vetor": [0.1, 0.2, 0.3, 0.4],
"vetor_ralo": {"1":0.4, "10000":0.6, "222222":0.8},
"topk": 1,
"incluir_vetor": true
}' https://SEU_ENDPOINT/v1/collections/minha_colecao/query
Resultado Esperado:
{
"código": 0,
"id_requisição": "ad84f7a0-b4b2-4023-ae80-b6f092609a53",
"mensagem": "Sucesso",
"resultados": [
{
"id": "2",
"vetor": [
0.10000000149011612,
0.20000000298023224,
0.30000001192092896,
0.4000000059604645
],
"campos": {
"nome": null,
"peso": null,
"idade": null
},
"score": 1.46,
"vetor_ralo": {
"10000":0.6,
"1":0.4,
"222222":0.8
}
}
]
}
Parâmetros de Entrada
| Parâmetro | Localização | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
| {Endpoint} | Caminho | String | Sim | Ponto de entrada do seu cluster |
| {CollectionName} | Caminho | String | Sim | Nome da coleção |
| dashvector-auth-token | Cabeçalho | String | Sim | Sua chave de API |
| vetor | Corpo | Array | Não | Dados do vetor |
| vetor_ralo | Corpo | Dicionário | Não | Veter ralo |
| id_do_documento | Corpo | String | Não | Chave primária do documento |
| topk | Corpo | Inteiro | Não | Número de resultados a retornar (padrão: 10) |
| filtro | Corpo | String | Não | Condição de filtragem em SQL |
| incluir_vetor | Corpo | Booleano | Não | Endica se deve retornar os vetores |
| campos_saida | Corpo | Array | Não | Lista de campos a retornar |
| particionar | Corpo | String | Não | Nome da partição |
| vetores | Corpo | Dicionário | Não | Pesquisa com múltiplos vetores |
| reordernar | Corpo | Dicionário | Não | Parâmetros de reordenação |
| vetor_param | Corpo | Dicionário | Não | Parâmetros avançados de pesquisa |
Parâmetros de Saída
| Campo | Tipo | Descrição |
|---|---|---|
| código | Inteiro | Código de status da resposta |
| mensagem | String | Mensagem de status |
| id_requisição | String | Identificador único da requisição |
| resultados | Array | Lista de documentos encontrados |
| uso | Dicionário | Informações de consumo para instâncias serverless |