Tujuan Query API adalah untuk mengambil Objek Data dari Koleksi menggunakan filter. Hal ini mirip dengan membuat kueri tabel database dan menggunakan klausa
WHERE SQL. Anda juga dapat menggunakan agregasi untuk mendapatkan jumlah Objek Data yang cocok dengan filter.
Bahasa ekspresi filter
Selain fungsi penelusuran KNN/ANN, Vector Search 2.0 menyediakan kemampuan kueri serbaguna menggunakan bahasa kueri kustom. Bahasa kueri dijelaskan dalam tabel berikut.
| Filter | Deskripsi | Jenis yang Didukung | Contoh |
|---|---|---|---|
| $eq | Mencocokkan Objek Data dengan nilai kolom yang sama dengan nilai yang ditentukan. | Angka, string, boolean | {"genre": {"$eq": "documentary"}} |
| $ne | Mencocokkan Objek Data dengan nilai kolom yang tidak sama dengan nilai yang ditentukan. | Angka, string, boolean | {"genre": {"$ne": "drama"}} |
| $gt | Mencocokkan Objek Data dengan nilai kolom yang lebih besar dari nilai yang ditentukan. | Angka | {"year": {"$gt": 2019}} |
| $gte | Mencocokkan Objek Data dengan nilai kolom yang lebih besar dari atau sama dengan nilai yang ditentukan. | Angka | {"year": {"$gte": 2020}} |
| $lt | Mencocokkan Objek Data dengan nilai kolom yang kurang dari nilai yang ditentukan. | Angka | {"year": {"$lt": 2020}} |
| $lte | Mencocokkan Objek Data dengan nilai kolom yang kurang dari atau sama dengan nilai yang ditentukan. | Angka | {"year": {"$lte": 2020}} |
| $in | Mencocokkan Objek Data dengan nilai kolom yang ada di array tertentu. | String | {"genre": {"$in": ["comedy", "documentary"]}} |
| $nin | Mencocokkan Objek Data dengan nilai kolom yang tidak ada di array tertentu. | String | {"genre": {"$nin": ["comedy", "documentary"]}} |
| $dan | Menggabungkan klausa kueri dengan AND logis. | - | {"$and": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]} |
| $atau | Menggabungkan klausa kueri dengan OR logis. | - | {"$or": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]} |
| $all | Memilih dokumen yang nilai array kolomnya berisi semua nilai yang ditentukan. | - | {"colors": {"$all": ["red", "blue"]}} |
Membuat Kueri Koleksi
Contoh berikut menunjukkan cara menggunakan filter untuk membuat kueri Objek Data
dalam Kumpulan 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": "*" \
} \
}'
Contoh berikut menunjukkan cara menghitung semua Objek Data dalam
Koleksi 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" \
}'
Apa langkah selanjutnya?
- Pelajari cara menelusuri Objek Data.