Lo scopo dell'API Query è recuperare gli oggetti dati da una raccolta
utilizzando un filtro. È simile all'esecuzione di query su una tabella di database e all'utilizzo di una clausola SQL
WHERE. Puoi anche utilizzare l'aggregazione per ottenere un conteggio degli oggetti dati
che corrispondono a un filtro.
Linguaggio dell'espressione di filtro
Oltre alla funzionalità di ricerca KNN/ANN, Vector Search 2.0 offre funzionalità di query versatili utilizzando un linguaggio di query personalizzato. Il linguaggio di query è spiegato nella tabella seguente.
| Filtro | Descrizione | Tipi supportati | Esempio |
|---|---|---|---|
| $eq | Corrisponde agli oggetti dati con valori dei campi uguali a un valore specificato. | Numero, stringa, booleano | {"genre": {"$eq": "documentary"}} |
| $ne | Corrisponde agli oggetti dati con valori di campo non uguali a un valore specificato. | Numero, stringa, booleano | {"genre": {"$ne": "drama"}} |
| $gt | Trova gli oggetti dati con valori dei campi maggiori di un valore specificato. | Numero | {"year": {"$gt": 2019}} |
| $gte | Corrisponde agli oggetti dati con valori dei campi maggiori o uguali a un valore specificato. | Numero | {"year": {"$gte": 2020}} |
| $lt | Corrisponde agli oggetti dati con valori dei campi inferiori a un valore specificato. | Numero | {"year": {"$lt": 2020}} |
| $lte | Corrisponde agli oggetti dati con valori di campo minori o uguali a un valore specificato. | Numero | {"year": {"$lte": 2020}} |
| $in | Corrisponde agli oggetti dati con valori dei campi in una matrice specificata. | Stringa | {"genre": {"$in": ["comedy", "documentary"]}} |
| $nin | Corrisponde agli oggetti dati con valori di campo non presenti in un array specificato. | Stringa | {"genre": {"$nin": ["comedy", "documentary"]}} |
| $and | Combina le clausole della query con un operatore logico AND. | - | {"$and": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]} |
| $or | Combina le clausole della query con un operatore logico OR. | - | {"$or": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]} |
| $all | Seleziona i documenti in cui il valore dell'array di un campo contiene tutti i valori specificati. | - | {"colors": {"$all": ["red", "blue"]}} |
Esecuzione di query sulle raccolte
L'esempio seguente mostra come utilizzare un filtro per eseguire query sugli oggetti dati
nella raccolta movies.
# Query Data Objects
curl -X POST \
'https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/movies/dataObjects:query' \
-H 'Bearer $(gcloud auth print-access-token)' \
-H 'Content-Type: application/json' \
-d '{ \
"page_size": 10, \
"page_token": "", \
"filter": { \
"$or": [ \
{ \
"director": { \
"$eq": "Akira Kurosawa" \
} \
}, \
{ \
"$and": [ \
{ \
"director": { \
"$eq": "David Fincher" \
} \
}, \
{ \
"genre": { \
"$ne": "Thriller" \
} \
} \
] \
} \
] \
}, \
"output_fields": { \
"data_fields": "*", \
"vector_fields": "*", \
"metadata_fields": "*" \
} \
}'
L'esempio seguente mostra come conteggiare tutti gli oggetti dati nella raccolta movies.
curl -X POST \ 'https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/movies/dataObjects:query' \
-H 'Bearer $(gcloud auth print-access-token)' \
-H 'Content-Type: application/json' \
-d '{ \
"aggregate": "count" \
}'
Passaggi successivi
- Scopri come cercare gli oggetti di dati.