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

OpenSearch:API または SDK によるデータインポート

最終更新日:Jul 01, 2026

OpenSearch では、3 種類のデータインジェスト方法を提供しています。最大限の柔軟性を実現する API または SDK を使用する方法、簡単なテストのためにコンソールで小規模なデータバッチをアップロードする方法、および RDS、MaxCompute、PolarDB などのクラウドデータソースからビジュアルインターフェイスを通じて自動同期を設定する方法があります。

フィールドタイプのマッピング

OpenSearch フィールドタイプ

API データプッシュフィールドタイプ

INT

int または long

INT_ARRAY

int[] または long[]

FLOAT

float

FLOAT_ARRAY

float[]

DOUBLE

double

DOUBLE_ARRAY

double[]

LITERAL

string

LITERAL_ARRAY

string[]

SHORT_TEXT

string

TEXT

string

TIMESTAMP

long

GEO_POINT

lon lat フォーマットの string。lon は経度、lat は緯度を表します。値は double 型である必要があり、半角スペースで区切られます。lon の値は [-180, 180] の範囲内、lat の値は [-90, 90] の範囲内である必要があります。

APIによるデータプッシュ

  1. コンソールのファイルアップロード機能はテスト用であり、大規模なデータアップロードには適していません。効率が低く、1 ファイルあたり 2 MB に制限されています。API または SDK によるデータプッシュのシステム制限の詳細については、「システム制限」をご参照ください。

    インスタンス管理ページで、目的のインスタンスを見つけます。[操作] 列のドロップダウンメニューをクリックし、[ファイルをアップロード] を選択します。

  2. API と SDK はデータソースプラグインをサポートしていないため、データをプッシュする前にデータを処理および構造化する必要があります。たとえば、API 経由で配列型のデータをプッシュする場合、string ではなく配列としてアップロードする必要があります。次の例を示します:

    // アップロードするドキュメントデータを格納する Map オブジェクトを定義します。これはドキュメント 2 です。
    Map<String,Object> doc2 =Maps.newLinkedHashMap();
         doc2.put("id",1);
    String[] literal_arr2 ={"要素 1","要素 2"};
         doc2.put("literal_arr", literal_arr2);
  3. API または SDK の使用に関する詳細については、次のリソースをご参照ください。

    開発ガイド

    Java SDK:コミットプッシュデモ および プッシュデモ

    PHP SDK:プッシュデモ および 検索付きプッシュデモ

    Go SDK:行動データプッシュデモ および プッシュデモ

    TypeScript/Node.js SDK:@alicloud/opensearch-sdk パッケージをインストールします。

    npm install @alicloud/opensearch-sdk

    pushDocument インターフェイスを使用してデータをプッシュします。

    import Client, { Config, Document, PushDocumentRequestModel } from '@alicloud/opensearch-sdk';
    
    // AccessKey で認証します。
    const config = new Config({
      endpoint: 'opensearch-cn-beijing.aliyuncs.com',  // データ API エンドポイント。
      accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
      accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
    });
    const client = new Client(config);
    
    // プッシュするドキュメントを構築します。
    const docs = [
      new Document({
        cmd: 'ADD',
        fields: { id: '1', title: 'サンプルドキュメント', body: 'ドキュメントコンテンツ' },
      }),
    ];
    
    // アプリケーションの指定されたテーブルにデータをプッシュします。
    const request = new PushDocumentRequestModel({ body: docs });
    const response = await client.pushDocument('your_app_name', 'your_table_name', request);
    console.log(response.body);

    各リージョンのエンドポイントのフォーマットは opensearch-cn-{region}.aliyuncs.com です。たとえば、China (Hangzhou) リージョンのエンドポイントは opensearch-cn-hangzhou.aliyuncs.com です。SDK 認証では、API キーではなく、Config オブジェクトを通じて渡される Alibaba Cloud AccessKey (AK/SK) を使用します。

    OpenSearch では、2 つの npm パッケージを提供しています。データ API (検索、データプッシュ、サジェスト) 用の @alicloud/opensearch-sdk と、コントロール API (アプリケーション管理) 用の @alicloud/opensearch20171225 です。データプッシュシナリオでは、@alicloud/opensearch-sdk を使用してください。

関連トピック

  1. API または SDK を使用してデータをインポートする方法については、「コミットプッシュデモ」をご参照ください。

  2. コンソールからファイルをアップロードする方法 (1 ファイルあたり 2 MB に制限) については、「チュートリアル」をご参照ください。

  3. データソースからデータをインポートする方法については、「RDSデータソースの設定」をご参照ください。