PutVectors 操作を呼び出して、ベクトルデータをインデックスに書き込むことができます。
注意事項
1 つのベクトルインデックステーブルには、最大 5,000 万行のベクトルデータを格納できます。 このクォータをテーブルあたり 20 億行に増やすには、テクニカルサポートまでご連絡ください。
1 回の PutVectors 呼び出しで書き込めるエントリは最大 500 件です。
権限
Alibaba Cloud アカウントは、デフォルトですべての権限を持っています。 ただし、Resource Access Management (RAM) ユーザーおよび RAM ロールは、デフォルトでは権限がありません。 Alibaba Cloud アカウントのオーナーまたは管理者は、RAM ポリシーまたはバケットポリシーを使用して操作権限を付与する必要があります。
API | アクション | 説明 |
PutVectors |
| ベクトルデータを書き込みます。 |
リクエスト構文
POST /?putVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou.oss-vectors.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Content-type: application/json
{
"indexName": "string",
"vectors": [
{
"data": {
"float32":[float]
},
"key": "string",
"metadata": {
"key1": ["value1", "value2"],
"key2": "value2"
}
}
]
}リクエストヘッダー
この操作では、共通リクエストヘッダーのみを使用します。 詳細については、「共通 HTTP ヘッダー」をご参照ください。
リクエストパラメーター
名前 | データ型 | 必須 | 例 | 説明 |
indexName | String | はい | vectorindex1 | インデックスの名前。 |
vectors | Container | はい | - | 書き込むベクトルの配列。 コンテナー内の要素数は 1~500 の範囲である必要があります。 |
key | String | はい | doc-001 | ベクトルを一意に識別するプライマリキー。 制約事項:
親ノード: vectors |
data | Container | はい | - | ベクトルの内容。 制約事項:
親ノード: vectors |
float32 | 数値の配列 | はい | [0.1, 0.2, 0.3] | float32 型のベクトルデータ。 ベクトルディメンションの数は、インデックスに定義されたディメンションの数と一致する必要があります。 余弦距離メジャーを使用する場合、ゼロベクトルは許可されません。 親ノード: data |
metadata | Container | いいえ | - | メタデータ。 制約事項:
親ノード: vectors |
レスポンスヘッダー
この操作では、共通レスポンスヘッダーのみを使用します。 詳細については、「共通 HTTP ヘッダー」をご参照ください。
例
リクエスト例
POST /?putVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou.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
{
"indexName": "vectorindex1",
"vectors": [
{
"key": "doc-001",
"data": {
"float32": [0.1, 0.2, 0.3, 0.4, 0.5]
},
"metadata": {
"category": ["technology", "ai"],
"title": "Introduction to Vector Search"
}
},
{
"key": "doc-002",
"data": {
"float32": [0.6, 0.7, 0.8, 0.9, 1.0]
},
"metadata": {
"category": ["technology", "database"],
"title": "Advanced Database Indexing"
}
}
]
}レスポンス例
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Connection: keep-alive
Server: AliyunOSSSDK
PutVectors 操作は、次の SDK でサポートされています:
ossutil コマンドラインインターフェイス
PutVectors 操作の ossutil コマンドについては、「put-vectors」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
VectorIndexParameterInvalid | 400 | リクエストで指定されたベクトルインデックスパラメーターが無効であるか、1 つのベクトルインデックステーブルに 5,000 万行を超えるベクトルデータが格納されています。 |
MalformedJson | 400 | リクエストボディの JSON フォーマットが無効です。 |
AccessDenied | 403 | このエラーの原因として、次のものが考えられます:
|
NoSuchVectorIndex | 404 | 指定されたベクトルインデックスが存在しません。 |
QpsLimitExceeded | 503 | クエリ/秒 (QPS) が上限を超えています。 HTTP ステータスコードが 5xx の場合、同じバッチ内の一部のデータのみが正常に書き込まれる可能性があります。 書き込み操作は原子性を保証しません。 |