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

OpenSearch:データ API

最終更新日:Aug 22, 2026

URL

/update/$table_name/actions/bulk

  • $table_name は インスタンス ID_テーブル名 です。例えば、インスタンス ID が ha-843qfng6ydhb でテーブル名が test の場合、table_name は ha-843qfng6ydhb_test となります。

  • 上記の URL では、リクエストヘッダーパラメーターやエンコーディングなどの要素が省略されています。

  • 上記の URL では、アプリケーションにアクセスするためのホストアドレスが省略されています。

対応フォーマット

JSON

HTTP リクエストメソッド

POST

ヘッダーパラメーター

パラメーター

タイプ

説明

authorization

文字列

署名

X-Opensearch-Swift-PK-Field

文字列

プッシュするインデックステーブルのプライマリキーです。例:id

host

文字列

リクエストホストです。[インスタンスの詳細] > [API エンドポイント] > [API ドメイン] で確認できます。例:ha-cn-**********.ha.aliyuncs.com

署名メカニズム

次の方法で署名 (authorization) を計算できます

パラメーター

タイプ

説明

accessUserName

文字列

ユーザー名です。[インスタンスの詳細] ページ > [ネットワーク情報] で確認できます。

accessPassWord

文字列

パスワードです。[インスタンスの詳細] ページ > [ネットワーク情報] で変更できます。

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);
		}
}

authorization の正しいフォーマット

cm9vdDp******mdhbA==

注: HTTP リクエストで authorization パラメーターを設定する場合は、Basic プレフィックスを追加する必要があります。

例:

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

ドキュメントのデータフォーマット (body)

[
    {
        "cmd": "add",
        "fields": {
            "id": "1",
            "title": "This is the title",
            "body": "This is the body"
        }
    },
    {
        "cmd": "delete",
        "fields": {
            "id": "3"
        }
    }
]
  • cmd:必須です。ドキュメントに対する操作を定義します。指定できる値は "add" または "delete" です。ネットワークのやり取りと処理効率を向上させるため、1 回のリクエストで一括更新することを推奨します。"add" はドキュメントの追加を示します。同じプライマリキーを持つドキュメントがすでに存在する場合は、最初に "delete" を実行し、その後に "add" を実行します。"delete" はドキュメントの削除を示します。対応するプライマリキーを持つドキュメントがすでに存在しない場合でも、削除は成功したものと見なされます。

  • fields:必須です。操作対象のドキュメントの内容です。システム内のすべての操作はプライマリキーに基づいて実行されるため、プライマリキー列は必須です。"delete" の場合は、ドキュメントのプライマリキーのみを指定すればかまいません。

  • 配列型の場合は、JsonArray を使用します。例: [{"fields": { "id": "0","int_array": [14,85],"string_array": ["abc","xyz"]},"cmd": "add"}]。

  • 注:最外層は JsonArray 型で、複数のドキュメントに対する一括操作をサポートします。

例

リクエスト: (ここでは、リクエストヘッダーパラメーターやエンコーディングなどの要素を省略しています。)

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

// アップロードする以下のデータは、body に配置する必要があります
[{
	"cmd": "add",
	"fields": {
		"id": "1",
		"name": "Test Data Push"
	}
}]

成功の応答

戻り値にパラメーターが含まれない場合は、プッシュが成功したことを示します。

エラー応答

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

注意事項

  • API または SDK を使用してデータをプッシュする場合、アプリケーションの列名は大文字と小文字を区別しません。

  • API または SDK を使用してデータをプッシュする場合、件数とサイズには制限があります。制限はアプリケーションによって異なります。詳細については、「システムの制限」をご参照ください。

  • データのアップロード後は、必ず戻り値を確認し、該当するエラーコード (特にエラー 3007) が返された場合は、処理をリトライしてください。そうしないと、データ損失が発生する可能性があります。また、データ処理は非同期です。"OK" が返されても、システムがデータの受信に成功したことを示すのみです。データ処理中のエラーはコンソールのエラーメッセージに表示されるため、速やかに確認してください。

  • POST データにはサイズ制限があります。アップロードするドキュメントの総量が大きすぎる (エンコーディング前で 2 MB) 場合、サーバーはリクエストを受け付けず、例外を返します。