Lo scopo dell'API Search è trovare oggetti di dati simili a una query specificata e restituire un elenco di risultati classificati (in base alla somiglianza). L'API Search supporta anche il filtraggio.
L'API Search offre diversi modi per cercare oggetti di dati: ricerca vettoriale, ricerca a testo intero e ricerca semantica. Inoltre, è possibile combinare più ricerche di qualsiasi tipo per ottenere una ricerca ibrida.
Ricerca vettoriale
La ricerca vettoriale ti consente di fornire il tuo vettore di query. Questo è il metodo
obbligatorio per la ricerca di campi di incorporamento che non hanno un embedding-config.
Se vengono forniti più campi search_vector, i risultati vengono combinati utilizzando
pesi uguali.
L'esempio seguente mostra come eseguire una ricerca vettoriale in una raccolta con l'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": "*" \
} \
} \
}'
Ricerca testo
Esegue la ricerca a testo intero senza vettori sparsi. Il dialetto della query "parola" predefinito
considera l'intero input come singoli termini di ricerca con un operatore
AND implicito. Puoi impostare enhanced_query su true per espandere i termini di ricerca,
gestire le variazioni morfologiche, rimuovere le stop word e consentire operatori di ricerca aggiuntivi:
OR: un operatore di disgiunzione sensibile alle maiuscole che corrisponde ai documenti contenenti almeno uno dei termini specificati. Si applica solo ai due termini adiacenti.": (virgolette doppie) per la ricerca di frasi.-: l'operatore di negazione. Esclude i documenti che contengono i termini che lo precedono.
Ricerca semantica
Questa ricerca converte la query di testo in embedding per trovare risultati basati sul significato semantico. Utilizza embedding-config definito nello schema per
generare l'incorporamento della query. Se vengono forniti più campi search_vector,
i risultati vengono combinati utilizzando pesi uguali.
Ricerca con la ricerca ibrida
Utilizza batch_search_data_objects per eseguire più ricerche in parallelo
(ricerca vettoriale, ricerca di testo e ricerca semantica) e, facoltativamente, combinare
e classificare i risultati utilizzando un classificatore.
Sono disponibili i seguenti Ranker:
ReciprocalRankFusion: unisce i set di risultati utilizzando l'algoritmo Reciprocal Rank Fusion (RFF).VertexRanker: utilizza l'API Vertex Ranking per unire e classificare i risultati.