查詢資料物件的集合

Query API 的用途是使用篩選器從集合擷取資料物件。這與查詢資料庫資料表並使用 SQL WHERE 子句類似。您也可以使用匯總功能,取得符合篩選條件的資料物件計數。

篩選運算式語言

除了 KNN/ANN 搜尋功能,Vector Search 2.0 也提供多種查詢功能,可使用自訂查詢語言。下表說明查詢語言。

篩選器 說明 支援的類型 範例
$eq 比對欄位值等於指定值的資料物件。 數字、字串、布林值 {"genre": {"$eq": "documentary"}}
$ne 比對欄位值不等於指定值的資料物件。 數字、字串、布林值 {"genre": {"$ne": "drama"}}
$gt 比對欄位值大於指定值的資料物件。 數字 {"year": {"$gt": 2019}}
$gte 比對欄位值大於或等於指定值的資料物件。 數字 {"year": {"$gte": 2020}}
$lt 比指定值的欄位值。 數字 {"year": {"$lt": 2020}}
$lte 比指定值小於或等於的資料物件。 數字 {"year": {"$lte": 2020}}
$in 比對資料物件與位於指定陣列中的欄位值。 字串 {"genre": {"$in": ["comedy", "documentary"]}}
$nin 比對欄位值不在指定陣列中的資料物件。 字串 {"genre": {"$nin": ["comedy", "documentary"]}}
$和 以邏輯 AND 聯結查詢子句。 - {"$and": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
$or 以邏輯 OR 聯結查詢子句。 - {"$or": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
$all 選取欄位陣列值包含所有指定值的文件。 - {"colors": {"$all": ["red", "blue"]}}

查詢集合

以下範例說明如何使用篩選器,在集合 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": "*" \
    } \
  }'

以下範例示範如何計算「集合」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" \
  }'

後續步驟