Esecuzione di query sulle raccolte per gli oggetti dati

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