El objetivo de la API Search es encontrar objetos de datos que sean similares a una consulta determinada y devolver una lista de resultados clasificados (por similitud). La API Search también admite el filtrado.
La API Search ofrece varias formas de buscar objetos de datos: búsqueda vectorial, búsqueda en todo el texto y búsqueda semántica. Además, se pueden combinar varias búsquedas de cualquier tipo para conseguir una búsqueda híbrida.
Vector search
La búsqueda vectorial te permite proporcionar tu propio vector de consulta. Este es el método obligatorio para buscar campos de inserción que no tienen un embedding-config.
Si se proporcionan varios campos search_vector, los resultados se combinan con el mismo peso.
En el siguiente ejemplo se muestra cómo realizar una búsqueda vectorial 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
Realiza una búsqueda en todo el texto sin vectores dispersos. El dialecto de consulta "palabra" predeterminado trata toda la entrada como términos de búsqueda individuales con un operador AND implícito. Puedes definir enhanced_query como true para ampliar los términos de búsqueda, gestionar la derivación, eliminar las palabras de parada y permitir operadores de búsqueda adicionales:
OR: operador de disyunción que distingue entre mayúsculas y 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 buscar una frase.-: operador de negación. Excluye los documentos que contengan los términos que se hayan colocado antes.
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 inserción de la consulta. Si se proporcionan varios campos search_vector, los resultados se combinan con el mismo peso.
Buscar 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, opcionalmente, combina y clasifica los resultados mediante un clasificador.
Están disponibles los siguientes ordenadores:
ReciprocalRankFusion: combina conjuntos de resultados mediante el algoritmo de fusión de rango recíproco (RRF).VertexRanker: usa la API Vertex Ranking para combinar y clasificar los resultados.