Pesquisar objetos de dados

O objetivo da API Search é encontrar objetos de dados semelhantes a uma consulta específica e devolver uma lista de resultados classificados (classificados por semelhança). A API Search também suporta a filtragem.

A API Search oferece várias formas de pesquisar objetos de dados: pesquisa de vetores, pesquisa de texto completo e pesquisa semântica. Além disso, podem ser combinadas várias pesquisas de qualquer tipo para alcançar a pesquisa híbrida.

A pesquisa vetorial permite-lhe fornecer o seu próprio vetor de consulta. Este é o método obrigatório para pesquisar campos de incorporação que não têm um embedding-config. Se forem fornecidos vários campos search_vector, os resultados são combinados com pesos iguais.

O exemplo seguinte demonstra como realizar uma pesquisa vetorial numa coleção com o ID movies.

curl -X POST \
'https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/movies/dataObjects:search' \
  -H 'Bearer $(gcloud auth print-access-token)' \
  -H 'Content-Type: application/json' \
  -d '{ \
    "vector_search": { \
      "search_field": "plot_embedding", \
      "vector": { \
        "values": [ \
          0.42426406871192845, \
          0.565685424949238, \
          0.7071067811865475 \
        ] \
      }, \
      "filter": { \
        "genre": { \
          "$eq": "Thriller" \
        } \
      }, \
      "top_k": 5, \
      "output_fields": { \
        "data_fields": "*", \
        "vector_fields": "*", \
        "metadata_fields": "*" \
      } \
    } \
  }'

Isto executa uma pesquisa de texto completo sem vetores esparsos. O dialeto de consulta "palavra" predefinido trata toda a entrada como termos de pesquisa individuais com um operador AND implícito. Pode definir enhanced_query como true para expandir os termos de pesquisa, processar a flexão, remover palavras vazias e permitir operadores de pesquisa adicionais:

  • OR: um operador de disjunção sensível a maiúsculas e minúsculas que corresponde a documentos que contêm, pelo menos, um dos termos especificados. Aplica-se apenas aos dois termos adjacentes.

  • ": (aspas duplas) para pesquisar expressões.

  • -: o operador de negação. Exclui documentos que contenham quaisquer termos que estejam colocados antes.

Esta pesquisa converte a sua consulta de texto em incorporações para encontrar resultados com base no significado semântico. Usa o embedding-config definido no seu esquema para gerar a incorporação da consulta. Se forem fornecidos vários campos search_vector, os resultados são combinados com pesos iguais.

Use batch_search_data_objects para executar várias pesquisas em paralelo (pesquisa vetorial, pesquisa de texto e pesquisa semântica) e, opcionalmente, combinar e classificar os resultados através de um classificador.

Estão disponíveis os seguintes classificadores:

  • ReciprocalRankFusion: une conjuntos de resultados através do algoritmo de fusão de classificação recíproca (RRF).

  • VertexRanker: usa a API Vertex Ranking para unir e classificar os resultados.