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

OpenSearch:OSS + API データソース

最終更新日:Apr 01, 2026

Object Storage Service (OSS) を OpenSearch Retrieval Engine Edition テーブルのフルデータソースとして設定します。この設定により、OSS バケットから一括データを検索インデックスにロードし、API 経由で最新の状態に保ちます。

処理は次の 2 つのフェーズで構成されます。

  1. OSS の準備 — サービスを有効化し、バケットを作成してデータオブジェクトをアップロードし、必要なタグを適用します。

  2. OpenSearch コンソールでテーブルを設定します。

前提条件

開始する前に、以下の要件を満たしていることを確認してください。

  • OSS の有効化および OpenSearch インスタンスの作成権限を持つ Alibaba Cloud アカウント

  • 対象リージョンにすでに作成済みの OpenSearch Retrieval Engine Edition インスタンス

制限事項

制限事項詳細
リージョンの一致OSS は、ご利用の OpenSearch インスタンスと同じリージョンで有効化されている必要があります。
バケットタイプリージョン属性を持たない OSS バケットはサポートされていません。
ディレクトリのタグ付けOSS ディレクトリ名に opensearch を含めるか、opensearch:opensearch タグを付与する必要があります。
パス文字OSS パスには ?=、または &
オブジェクトの配置オブジェクトはバケットのルートではなく、ディレクトリ内に配置する必要があります。

OSS の準備

OSS の有効化とバケットの作成

  1. OSS のアクティベーション をお使いの OpenSearch インスタンスと同じリージョンで行ってください。

  2. OSS コンソールでバケットを作成します。

  3. データオブジェクトをバケットにアップロードする。オブジェクトはディレクトリ内に配置する必要があります — バケットのルート内には配置できません。

  4. バケットに opensearch:opensearch タグを追加します。ディレクトリ名に opensearch が含まれていない場合、このタグは必須です。タグがないと、OpenSearch はオブジェクトを読み取れません。

OpenSearch コンソールで OSS データソースを追加すると、システムは自動的に AliyunServiceRoleForSearchEngine という名前のサービスリンクロールを作成します(該当ロールが存在しない場合)。OpenSearch はこのロールを偽装して、ご利用の OSS リソースにアクセスします。

OSS + API データソースの追加

ステップ 1:テーブルの基本設定

  1. OpenSearch コンソールで、インスタンスの詳細 > テーブル管理 に移動し、[テーブルの追加] をクリックします。

  2. 次のパラメーターを設定します。

    パラメーター説明
    [テーブル名]テーブルのカスタム名
    [データシャード数]256 以下の正の整数。この値は、インスタンスのデータノード数の 3 倍以下にしてください。
    [データ更新リソース数]データ更新に割り当てられるリソースの数。各インデックスには、2 つの無料更新リソース (4 vCPU、8 GiB メモリ) が含まれます。無料クォータを超えるリソースは課金されます。課金の詳細については、課金の詳細をご参照ください。

ステップ 2:データソースの設定

  1. データソースの設定 で、次のフィールドを設定します。

    OSS パス のディレクトリ名には opensearch を含める(例:/opensearch_index_data/)か、opensearch:opensearch タグを付与する必要があります。いずれも満たさない場合、システムはオブジェクトを読み取れません。
    フィールド値 / 要件
    フルデータソースObject Storage Service (OSS) + API
    OSS パスデータオブジェクトを含むディレクトリへのパス。先頭は / で始まる必要があります。?=、または & を含めることはできません。例:/opensearch_index_data/
    OSS バケットOSS コンソールの バケット ページに表示されるバケット名
    データ形式HA3 または JSON
  2. データソースの検証 が完了したら、[次へ] をクリックします。

ステップ 3:フィールドとスキーマの設定

  1. フィールドを設定して、[次へ] をクリックします。次のサンプルでは、2つのフィールド — pk および namespace — を示しています。完全なデータ形式を確認するには、完全なサンプルファイル (oss_test.txt) をダウンロードしてください。

    CMD=add
    pk=999000
    namespace=0.00.0039257140.0098142860.0039257140.00
    pk=999000
    namespace=0.00.0039257140

    オブジェクト形式の詳細については、「オブジェクト形式リファレンス」をご参照ください。

  2. インデックススキーマを設定し、[次へ] をクリックします。

ステップ 4:テーブルの作成と検証

  1. [作成の確認] をクリックします。システムが自動的にテーブルを生成します。

  2. 変更履歴 で作成の進捗を確認します。

  3. テーブルのステータスが 利用可能 に変わったら、クエリテストページでクエリを実行し、データが正しくインデックスされていることを確認します。

オブジェクト形式リファレンス

オブジェクトは UTF-8 エンコーディングである必要があります。サポートされる形式は HA3 と JSON の 2 種類です。

HA3 形式

HA3 は行指向の形式です。各ドキュメントは、ASCII 制御文字で区切られたキーと値のペアのセットで構成されます。

デリミタ

C++ エンコーディングASCII 16 進数説明表示形式
\x1F\n1F0Aキーと値のデリミタ^_(改行付き)
\x1E\n1E0Aコマンドデリミタ^^(改行付き)
\x1D1D複数値デリミタ^]
\x1C1Cセクション重みフラグ^\
\x1D1Dセクションデリミタ^]
\x0303サブドキュメントフィールドデリミタ^C

追加コマンド

ドキュメントを挿入するには、CMD=add を使用します。最初の行は必ず CMD=add で始まり、その後にフィールドのキーと値のペアを記述します。フィールドの順序はスキーマと一致し、すべてのフィールドがスキーマで宣言されている必要があります。

CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^

削除コマンド

ドキュメントを削除するには、CMD=delete を使用します。最初の行は必ず CMD=delete で始まり、その後にプライマリキーフィールドを記述します。プライマリキーとパーティションハッシュ化フィールドが異なる場合は両方を含め、同じ場合は一方のみを含めてください。

CMD=delete^_
PK=12345321^_
^^

完全なデータファイルの例

1 つのデータファイルに複数のコマンドを含めることができます。

CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_
^^

JSON 形式

ファイル内の各行は単一の JSON レコードです。レコード内に改行を含めることはできません。複数のレコードはそれぞれ別の行に記述します。

{"field_double": ["100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300"], "title": "Huawei Mate 9 Kirin 960 chip Leica dual lens", "color": "Red", "empty_int32": "", "price": "3599", "CMD": "add", "nid": "1", "gather_cn_str": "", "desc": ["str1", "str2", "str3"], "brand": "Huawei", "size": "5.9","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
{"field_double": ["100.0", "221.123", "500.3333333", "100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300", "100", "200", "300"], "title": "Huawei/Huawei P10 Plus all-network phone", "color": "Blue", "empty_int32": "", "price": "4388", "CMD": "add", "nid": "2", "gather_cn_str": "color Blue", "desc": ["str1", "str2", "str3", "str1", "str2", "str3"], "brand": "Huawei", "size": "5.5","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}

各レコードには CMD フィールド("add" または "delete")およびドキュメントフィールドが含まれます。複数値フィールドは JSON 配列を使用します。サブドキュメントは __subdocs__ キーの下にオブジェクトの配列として記述します。