すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:QueryVectors

最終更新日:Jul 10, 2026

QueryVectors API を使用して、ベクトル類似性検索を実行します。

権限

デフォルトでは、Alibaba Cloud アカウントは完全な権限を持ちますが、RAM ユーザーまたは RAM ロールは権限を持ちません。Alibaba Cloud アカウントの所有者または管理者は、RAM ポリシーまたはバケットポリシーを使用して権限を付与する必要があります。

API

アクション

説明

QueryVectors

oss:QueryVectors

ベクターデータをクエリします。

リクエスト構文

ベクトルインデックスが作成されてから最大 30 秒間、QueryVectors の呼び出しに対する再現率が低くなる場合があります。PutVectors API を使用して書き込まれたデータは、約 2~3 秒でクエリ可能になります。
POST /?queryVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou-internal.oss-vectors.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Content-type: application/json

{
   "filter": {
       "$and": [{
           "type": {
               "$in": ["comedy", "documentary"]
           }
       }, {
           "year": {
               "$eq": "2020"
           }
       }]
    },
   "indexName": "string",
   "queryVector": {
       "float32":[float]
    },
   "returnDistance": boolean,
   "returnMetadata": boolean,
   "topK": int
}

リクエストヘッダー

この API は、共通リクエストヘッダーのみを使用します。詳細については、「共通 HTTP ヘッダー」をご参照ください。

リクエストパラメーター

パラメーター

タイプ

必須

説明

indexName

文字列

はい

vectorindex1

ベクトルインデックスの名前。

queryVector

コンテナ

はい

N/A

クエリベクトル。次元はベクトルインデックスの次元と一致する必要があります。

filter

コンテナ

いいえ

N/A

メタデータに基づいてデータをフィルタリングします。メタデータフィルターには、次の制限が適用されます。

  • 単一フィルター内のメタデータの合計サイズは 20 KB を超えることはできません。

  • 単一フィルター内のメタデータ項目の数は 1,024 を超えることはできません。

  • フィルター条件は最大 8 レベルまでネストできます。

returnDistance

ブール値

いいえ

false

類似度距離を返すかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

returnMetadata

ブール値

いいえ

false

メタデータを返すかどうかを指定します。有効な値:

  • true

  • false (デフォルト)

topK

数値

はい

10

返す類似度の高い結果の数。値は 1 から 500 までの整数である必要があります。

フィルター演算子

演算子

タイプ

説明

$eq

文字列、数値、ブール値

完全一致 (単一の値の場合)。配列型のメタデータで使用した場合、値が配列内のいずれかの要素と一致すると、演算子は true を返します。

$ne

文字列、数値、ブール値

指定された値と等しくない値に一致します。

$gt

数値

より大きい。

$gte

数値

以上。

$lt

数値

より小さい。

$lte

数値

以下。

$in

空ではないプリミティブの配列

配列内の任意の値に一致します (SQL の IN 演算と同様)。

$nin

空ではないプリミティブの配列

配列内のどの値とも一致しません (SQL の NOT IN 演算と同様)。

$exists

ブール値

メタデータキーが存在するかどうかを確認します。

$and

空ではないフィルターの配列

フィルター条件の配列に対して論理 AND 演算を実行します。

$or

空ではないフィルターの配列

フィルター条件の配列に対して論理 OR 演算を実行します。

フィルターの例

以下は、一般的なフィルター式の例です。演算子が省略された場合、デフォルトで $eq が使用されます。

// 単純な等価性 (演算子が省略された場合はデフォルトで $eq を使用)
{"category": "finance"}

// 明示的な等価性 / 不等価性
{"category": {"$eq": "finance"}}
{"category": {"$ne": "archived"}}

// 数値比較
{"created_year": {"$gt": 2023}}
{"created_year": {"$gte": 2024}}
{"created_year": {"$lt": 2026}}
{"created_year": {"$lte": 2025}}

// 配列のマッチング
{"language": {"$in": ["zh", "en"]}}
{"language": {"$nin": ["ja", "ko"]}}

// 存在チェック
{"author": {"$exists": true}}

// 論理的な組み合わせ
{"$and": [{"category": {"$eq": "finance"}}, {"created_year": {"$gte": 2024}}]}
{"$or": [{"category": {"$eq": "finance"}}, {"category": {"$eq": "tech"}}]}

// 同じフィールドに対する複数の条件 (範囲)
{"score": {"$gte": 0.6, "$lte": 0.95}}

レスポンスヘッダー

この API は、共通レスポンスヘッダーのみを使用します。詳細については、「共通 HTTP ヘッダー」をご参照ください。

レスポンス要素

パラメーター

タイプ

説明

vectors

オブジェクトの配列

/

ベクトル検索結果のリスト。

key

文字列

doc-001

ベクタープライマリキー。

親ノード: vectors

distance

float32

0.25

返されたベクトルとクエリベクトルの類似度距離。値が小さいほど、類似度が高いことを示します。このパラメーターは、returnDistancetrue に設定されている場合にのみ返されます。

親ノード: vectors

metadata

オブジェクト

/

ベクトルの完全なメタデータ。このパラメーターは、returnMetadatatrue に設定されている場合にのみ返されます。

親ノード: vectors

POST /?queryVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou-internal.oss-vectors.aliyuncs.com
Date: Thu, 17 Apr 2025 01:33:47 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218
Content-type: application/json

{
   "filter": {
       "$and": [{
           "category": {
               "$in": ["technology", "science"]
           }
       }, {
           "year": {
               "$eq": "2020"
           }
       }]
    },
   "indexName": "vectorindex1",
   "queryVector": {
       "float32": [0.15, 0.25, 0.35, 0.45, 0.55]
    },
   "returnDistance": true,
   "returnMetadata": true,
   "topK": 5
}

レスポンスの例

HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Connection: keep-alive
Server: AliyunOSS
Content-type: application/json

{
   "vectors": [ 
      { 
         "distance": 0.12,
         "key": "doc-001",
         "metadata": {
             "category": ["technology", "ai"],
             "title": "Introduction to Vector Search",
             "year": "2020"
         }
      },
      { 
         "distance": 0.25,
         "key": "doc-003",
         "metadata": {
             "category": ["science"],
             "title": "Advanced Vector Operations",
             "year": "2020"
         }
      }
   ]
}

SDK

QueryVectors API は、次の SDK で利用できます。

ossutil CLI

この API は、ossutil コマンドラインツールの query-vectors コマンドを使用して実行できます。

エラーコード

エラーコード

HTTP ステータスコード

説明

VectorIndexParameterInvalid

400

リクエストに無効なベクトルインデックスパラメーターが含まれています。

MalformedJson

400

リクエスト本文の JSON 形式が無効です。

AccessDenied

403

このエラーの原因として、以下が考えられます。

  • リクエストにユーザー認証情報が含まれていません。

  • この操作に必要な権限がありません。

NoSuchVectorIndex

404

指定されたベクトルインデックスは存在しません。

QpsLimitExceeded

503

リクエストレートが QPS 制限を超えました。リクエストはスロットリングされています。