Realizando Pesquisas de Similaridade em Coleções via API HTTP

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

Tags: API HTTP Similaridade Pesquisa Vetorial Coleção de Dados

Publicado em 8-30 07:24