El propósito de la API de Search es encontrar objetos de datos que sean similares a una búsqueda determinada y devolver una lista de resultados clasificados (según la similitud). La API de Search también admite el filtrado.
La API de Search ofrece varias formas de buscar objetos de datos: búsqueda de vectores, búsqueda en el texto completo y búsqueda semántica. Además, se pueden combinar varias búsquedas de cualquier tipo para lograr una búsqueda híbrida.
Búsqueda de vectores
La búsqueda de vectores te permite proporcionar tu propio vector de búsqueda. Este es el método obligatorio para buscar campos de embedding que no tienen un embedding-config.
Si se proporcionan varios campos search_vector, los resultados se combinan con pesos iguales.
En el siguiente ejemplo, se muestra cómo realizar una búsqueda de vectores en una colección con el 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": "*" \
} \
} \
}'
Búsqueda de texto
Esto realiza una búsqueda en el texto completo sin vectores dispersos. El dialecto de consulta predeterminado "palabra" trata toda la entrada como términos de búsqueda individuales con un operador AND implícito. Puedes establecer enhanced_query en true para expandir los términos de búsqueda, controlar la lematización, quitar las palabras irrelevantes y permitir operadores de búsqueda adicionales:
OR: Es un operador de disyunción que distingue mayúsculas de minúsculas y que coincide con los documentos que contienen al menos uno de los términos especificados. Solo se aplica a los dos términos adyacentes.": (comillas dobles) para la búsqueda de frases-: Es el operador de negación. Excluye los documentos que contienen los términos que preceden al operador.
Búsqueda semántica
Esta búsqueda convierte tu consulta de texto en embeddings para encontrar resultados basados en el significado semántico. Usa el embedding-config definido en tu esquema para generar la incorporación de la búsqueda. Si se proporcionan varios campos search_vector, los resultados se combinan con pesos iguales.
Cómo realizar búsquedas con la búsqueda híbrida
Usa batch_search_data_objects para ejecutar varias búsquedas en paralelo (búsqueda vectorial, búsqueda de texto y búsqueda semántica) y, de forma opcional, combina y clasifica los resultados con un clasificador.
Están disponibles los siguientes clasificadores:
ReciprocalRankFusion: Combina conjuntos de resultados con el algoritmo de fusión de clasificación recíproca (RRF).VertexRanker: Usa la API de Vertex Ranking para combinar y clasificar los resultados.