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.
Pesquisa vetorial
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": "*" \
} \
} \
}'
Pesquisa de texto
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.
Pesquisa semântica
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.
Pesquisar através da pesquisa híbrida
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.