O objetivo da API Search é encontrar objetos de dados semelhantes a uma consulta específica e retornar uma lista de resultados classificados por similaridade. A API Search também oferece suporte à filtragem.
A API Search oferece várias maneiras de pesquisar objetos de dados: pesquisa vetorial, pesquisa de texto completo e pesquisa semântica. Além disso, várias pesquisas de qualquer tipo podem ser combinadas para criar uma pesquisa híbrida.
Pesquisa vetorial
Com a pesquisa vetorial, você pode fornecer seu próprio vetor de consulta. Esse é o método obrigatório para pesquisar campos de incorporação que não têm um embedding-config.
Se vários campos search_vector forem fornecidos, os resultados serão combinados usando ponderações iguais.
O exemplo a seguir demonstra como realizar uma pesquisa vetorial em uma
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
Isso realiza uma pesquisa de texto completo sem vetores esparsos. O dialeto padrão de consulta "word"
trata toda a entrada como termos de pesquisa individuais com um operador
AND implícito. Você pode definir enhanced_query como true para expandir os termos de pesquisa, processar a derivação, remover palavras irrelevantes e permitir outros operadores de pesquisa:
OR: um operador de disjunção que diferencia maiúsculas de minúsculas e corresponde a documentos que contêm pelo menos um dos termos especificados. Ela só se aplica aos dois termos adjacentes.": (aspas duplas) para pesquisa de frases.-: o operador de negação. Ele exclui documentos que contêm termos antes dele.
Pesquisa semântica
Essa pesquisa converte sua consulta de texto em embeddings para encontrar resultados com base no significado semântico. Ele usa o embedding-config definido no seu esquema para gerar o embedding de consulta. Se vários campos search_vector forem fornecidos, os resultados serão combinados usando ponderações iguais.
Pesquisar usando a pesquisa híbrida
Use batch_search_data_objects para executar várias pesquisas em paralelo (vetorial, de texto e semântica) e, se quiser, combine e classifique os resultados usando um classificador.
Os seguintes classificadores estão disponíveis:
ReciprocalRankFusion:mescla conjuntos de resultados usando o algoritmo de fusão de classificação recíproca (RRF, na sigla em inglês).VertexRanker:usa a API Vertex Ranking para mesclar e classificar resultados.