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

OpenSearch:データ更新

最終更新日:Apr 02, 2026

単一のバルクリクエストを使用して、OpenSearch Vector Search Edition テーブル内のドキュメントをアップロードおよび削除します。

リクエストの基本

プロパティ
メソッドPOST
形式JSON
エンドポイントパス/update/$table_name/actions/bulk

$table_name{instance_id}_{table_name} に設定します。例えば、インスタンス ID が ha-843qfng6ydhb でテーブル名が test の場合、ha-843qfng6ydhb_test を使用します。

リクエストヘッダー

ヘッダータイプ説明
authorizationString認証署名。形式: Basic <Base64-encoded-credentials>。詳細については、「認証ヘッダーの生成」をご参照ください。
X-Opensearch-Swift-PK-FieldStringインデックステーブルのプライマリキーフィールド。例: id
hostStringOpenSearch インスタンスのエンドポイントです。[API エンドポイント] セクションの [インスタンスの詳細] ページで確認できます。例: ha-cn-**********.ha.aliyuncs.com

認証ヘッダーの生成

authorization ヘッダーの値は、username:password の Base64エンコードされた文字列です。

パラメーター

パラメータータイプ説明
accessUserNameStringユーザー名です。[インスタンスの詳細] ページの [API エンドポイント] セクションで確認できます。
accessPassWordStringパスワードです。[インスタンスの詳細] ページの [API エンドポイント] セクションでパスワードを変更できます。

値の生成

import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;

public class GenerateAuthorization {

    public static void main(String[] args) throws Exception {
        String accessUserName = "username";
        String accessPassWord = "password";
        String realmStr = "" + accessUserName + ":" + accessPassWord + "";
        String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
        System.out.println(authorization);
    }
}

このコードは、cm9vdDp******mdhbA== のような Base64エンコードされた文字列を出力します。

HTTP リクエストでヘッダーを設定する際に、Basic プレフィックスを追加します。

authorization: Basic cm9vdDp******mdhbA==

リクエストボディ

リクエストボディは JSON 配列です。各要素は 1 つのドキュメント操作を表します。

[
    {
        "cmd": "add",
        "fields": {
            "id": "1",
            "title": "This is the title",
            "body": "This is the body"
        }
    },
    {
        "cmd": "delete",
        "fields": {
            "id": "3"
        }
    }
]

フィールド

フィールド必須説明
cmdYes実行する操作。有効な値: adddelete。ネットワークと処理の効率を向上させるために、単一のリクエストで複数の操作を一括処理します。
fieldsYes操作するドキュメントフィールド。プライマリキーフィールドを含める必要があります。OpenSearch は各ドキュメントをプライマリキー値で識別します。

`cmd` の動作

動作
addドキュメントをアップロードします。同じプライマリキーを持つドキュメントが既に存在する場合、新しいドキュメントが書き込まれる前に元のドキュメントは削除されます。
delete指定されたプライマリキーを持つドキュメントを削除します。一致するドキュメントが存在しない場合でも、操作は成功します。

ARRAY 型フィールド

ARRAY 型フィールドは JSON 配列として指定します。

[{"cmd": "add", "fields": {"id": "0", "int_array": [14, 85], "string_array": ["abc", "xyz"]}}]

リクエスト例

POST http://ha-cn-**********.ha.aliyuncs.com/update/$table_name/actions/bulk

リクエストボディ:

[{
    "cmd": "add",
    "fields": {
        "id": 1,
        "name": "Test Data Push"
    }
}]

レスポンス

成功

成功時にはレスポンスボディは返されません。

エラー

[
    {
        "code": 3012,
        "message": "Resource not found."
    }
]

注意事項

  • API または OpenSearch SDK を介してデータをプッシュする場合、フィールド名は大文字と小文字を区別しません。

  • プッシュ頻度とデータサイズ制限は、アプリケーションによって異なります。ご利用のアプリケーションタイプに関する制限事項ドキュメントをご参照ください。

  • データをプッシュした後、レスポンスでエラーコードを確認してください。エラーコード 3007 は即座なトラブルシューティングが必要です。未解決のデータエラーはデータ損失を引き起こす可能性があります。OpenSearch はデータを非同期に処理します。成功したレスポンスはデータが受信されたことを意味し、処理が完了したことを意味するものではありません。処理エラーについては OpenSearch コンソールを監視してください。

  • エンコード前の最大リクエストボディサイズは 2 MB です。この制限を超えるリクエストは拒否されます。