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

OpenSearch:OSS + API データソース

最終更新日:Aug 21, 2026

Object Storage Service (OSS) を使用して、バケットに保存されている HA3 または JSON ファイルからフルインデックスを構築し、インデックスが有効になった後に API を使用して増分更新を行います。

メソッド 役割 使用タイミング
OSS フルインポート インデックス作成時にすべてのレコードを一度にロードします インデックスの初期ビルドまたはフルリビルド
API 増分更新 インデックスが有効になった後にレコードを追加、変更、または削除します 継続的なデータ変更
重要

OSS とご利用の OpenSearch Vector Search Edition インスタンスは、同じリージョンにある必要があります。リージョンが一致しない場合、データソース接続は失敗します。

設定は2つのパートに分かれています。まず OSS を準備し、次にテーブルを作成する際にデータソースとして接続します。

前提条件

開始する前に、以下が準備できていることを確認してください。

  • OSS が有効化された Alibaba Cloud アカウント

  • 購入済みの Vector Search Edition インスタンス (詳細については、「Vector Search Edition インスタンスの購入」をご参照ください)

  • UTF-8 でエンコードされ、HA3 または JSON 形式のデータファイル

ステップ 1:OSS の準備

OSS の有効化

ご利用の OpenSearch インスタンスと同じリージョンで OSS を有効化します。

バケットの作成

  1. OSS 管理コンソール > [バケット] > [バケットの作成] に移動します。

    OSS 管理コンソールの左側のナビゲーションウィンドウで、[バケット] をクリックし、[バケットの作成] をクリックします。

  2. バケットの作成後、[バケット設定] > [バケットのタグ付け] > [タグの作成] を選択して、OpenSearch タグを追加します。

    タグキー (Key) とタグ値 (Value) の両方を opensearch に設定します。

データファイルの準備

アップロードする前に、ファイルがこれらの要件を満たしている必要があります。

要件 詳細
エンコーディング UTF-8
フォーマット HA3 または JSON
場所 バケットのルートディレクトリではなく、フォルダ内にある必要があります

JSON フォーマット

各行が1つの JSON ドキュメントです。複数行の JSON はサポートされていません。

ルール 詳細
1行につき1レコード 各 JSON オブジェクトは1行に収める必要があります
行区切り文字 \n で区切ります。JSON 値の内部に \n を含めることはできません
混合ファイルなし ディレクトリには JSON データファイルのみを含める必要があります
値の型 すべての JSON 値は文字列です。スキーマはインデックス構築中にそれらを正しい型に変換します

例:

{"field_double": ["100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300"], "title": "Huawei Mate 9 Kirin 960 chip Leica dual camera", "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 full network phone", "color": "Blue", "empty_int32": "", "price": "4388", "CMD": "add", "nid": "2", "gather_cn_str": "colorBlue", "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"]}]}

HA3 フォーマット

HA3 ファイルはバイナリ区切り文字を使用します。各ファイルには add コマンドと delete コマンドのシーケンスが含まれています。

ファイル区切り文字

C++ エンコーディング ASCII 16進数 説明 表示 (emacs/vi) emacs での入力 vi での入力
"\x1F\n" 1F0A キーと値の区切り文字 ^_ (改行が続く) C-q C-7 C-v C-7
"\x1E\n" 1E0A コマンド区切り文字 ^^ (改行が続く) C-q C-6 C-v C-6
"\x1D" 1D 複数値の区切り文字 ^] C-q C-5 C-v C-5
"\x1C" 1C セクションの重みフラグ ^\ C-q C-4 C-v C-4
"\x1D" 1D セクション区切り文字 ^] C-q C-5 C-v C-5
"\x03" 03 サブドキュメントのフィールド区切り文字 ^C C-q C-c C-v C-c

コマンドフォーマット

  • 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^_
    ^^
  • delete コマンド:最初の行は CMD=delete である必要があります。プライマリキーフィールドとパーティションハッシュフィールドを含めます。両方が同じフィールドである場合は、一度だけ含めます。

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

バケットへのファイルのアップロード

データファイルは、ルートディレクトリではなく、バケット内のフォルダに配置します。バケットの構造は次のようになります。

<your-bucket-name>/
  └── <your-data-folder>/
        ├── data_file_1.json
        ├── data_file_2.json
        └── ...

アップロードするには:

  1. OSS 管理コンソールで、ご利用のバケットを開きます。

  2. 左側のナビゲーションウィンドウで、[オブジェクト管理] > [オブジェクト] を選択します。

  3. [オブジェクトのアップロード] をクリックし、ファイルを選択して、確認します。

    アップロードが完了すると、[タスクリスト] パネルのファイルステータスに [アップロード成功] と表示されます。

ステップ 2:OSS + API データソースの追加

基本テーブル情報の設定

  1. インスタンス一覧で、お使いの Vector Search Edition インスタンスを見つけ、[操作] 列の[管理]をクリックします。

  2. 左側のナビゲーションウィンドウで、[テーブル管理] > [テーブルの追加] を選択します。

  3. テーブルの基本情報を入力し、[次へ] をクリックします。

    フィールド 説明
    テーブル名 このテーブルのカスタム名です。
    データシャード数 正の整数で、最大値は 256 です。 シャード数が多いほど、フルビルドの速度と単一クエリのパフォーマンスが向上します。
    データ更新リソース数 増分データ更新に使用されるリソースです。 各インデックスには、デフォルトで 2 つの無料の 4 コア 8 GB の更新リソースが含まれています。 追加のリソースは課金されます。 詳細については、「Vector Search Edition の課金」をご参照ください。
    シナリオテンプレート 次のいずれかを選択します: 汎用テンプレート、ベクトル: Image Search テンプレート、または ベクトル: テキストセマンティック検索テンプレート

    [ベクター: Image Search] テンプレートを選択した後、取得メソッドとして [デンスベクター取得] または [デンス & スパースベクターハイブリッド取得] を選択します。

データ同期の設定

  1. [フルデータソース] には、 [Object Storage Service (OSS) + API] を選択します。

  2. OSS の接続詳細を入力し、[データソースの検証] をクリックします。

    フィールド 説明
    OSS パス データファイルを含むフォルダへのパスです。/ で始まる必要があります。?、=、または & を含めることはできません。ファイルはフォルダ内にある必要があります — ルートディレクトリはサポートされていません。
    OSS バケット OSS バケットの名前
    データフォーマット アップロードしたファイルに合わせて [HA3] または [JSON] を選択してください
    説明

    OSS 管理コンソールの [バケット] ページで、目的のバケット (たとえば、zhyq-sz) の名前をクリックし、バケット詳細ページに移動します。

  3. 検証に成功したら、[次へ] をクリックします。

    検証に失敗した場合は、OSS パスがフォルダ (ルートではない) を指していること、バケット名が正しいこと、データ形式がファイルと一致していること、および OSS がご利用の OpenSearch インスタンスと同じリージョンにあることを確認してください。

フィールドの設定

Vector Search Edition は、シナリオテンプレートからフィールドを事前に入力し、データソースからフィールド定義をインポートします。

  1. プリセットフィールドを確認します。[Image Search テンプレート] では、デフォルトフィールドは次のとおりです。

    フィールド 説明
    id プライマリキー
    source_image ソース画像
    namespace 名前空間
    source_image_vector ソース画像ベクトル
  2. フィールドタイプとプロパティを設定します。

    • 主キー (必須): [タイプ] を整数型または STRING に設定してから、[主キー] オプションを選択します。

    • ベクトルフィールド (必須): [タイプ] を FLOAT に設定し、[ベクトルフィールド] チェックボックスを選択します。ベクトルフィールドは、デフォルトでカンマをデリミタとする複数値の FLOAT です。必要に応じて、カスタムデリミタを入力します。

    • デフォルト値: データ内のフィールドが欠落しているか空の場合、システムはデフォルト値を入力します。数値型には 0、STRING 型には空の文字列が設定されます。必要に応じてデフォルトをカスタマイズしてください。

  3. 前処理が必要なフィールド (source_image など) については、[データ前処理] 列の [設定] をクリックします。前処理の設定では:

    • データソース: [OSS オブジェクトストレージ] を選択して OSS から直接イメージをインポートするか (OSS パスを指定)、[Base64 エンコーディング] を選択して API 経由でエンコードされたイメージデータを提供します。

    • 前処理テンプレート:データ型に一致するテンプレートを選択します。画像の場合、利用可能なテンプレートは次のとおりです。

      • 画像ベクトル化

      • OCR 画像テキスト認識

      • OCR 画像テキスト認識 + 画像ベクトル化

    • サービスリスト:テンプレートを選択した後、使用されるモデルを確認します。以下から選択します。

      • 組み込みモデル:無料で利用でき、モデルタイプの選択肢は少なめです。

    この例の設定値:

    • OSS エンドポイント: oss-cn-shenzhen-internal.aliyuncs.com

    • OSS バケット: zhyq-sz

    • サービスリストで、[組み込み] [一般画像埋め込みモデル - 512D CLIP] モデルを選択し、出力フィールドを source_image_vector に設定します。

    [OK] をクリックして確認します。

  4. [次へ] をクリックします。

インデックススキーマの設定

  1. 含めるフィールドとインデックスパラメーターを設定し、次に[次へ] をクリックします。

    パラメーター 説明
    含まれるフィールド プライマリキーとベクトルフィールドは必須です。名前空間フィールドはオプションです。
    ベクトル次元 ベクトル埋め込みのディメンション数
    リアルタイムインデックス作成 リアルタイムインデックス更新を有効または無効にします
    距離タイプ ベクトル類似検索の距離メトリック
    ベクトルインデックスアルゴリズム ベクトルインデックスを構築するために使用されるアルゴリズム

    ベクトルインデックス設定例:

    • インデックス名:source_image_vector

    • ハイブリッド取得:無効

    • プライマリキー:id、ベクトルフィールド:source_image_vector

    • ディメンション:512

    • 距離タイプ: SquaredEuclidean

    • リアルタイムインデックス:true

    • アルゴリズム: Qc

  2. [詳細設定] をクリックすると、詳細パラメーターフィールドが展開されます:

    • リアルタイム インデックス パラメーター

    • インデックスビルドパラメーター

    • インデックス検索パラメーター

    • 線形ビルドしきい値

    • 最小再現率候補セットサイズ

    • 再現率メトリックレポート

    • 問題のあるベクターデータを無視する

    完全なパラメーターリファレンスについては、「汎用ベクトルインデックス設定」をご参照ください。

確認と検証

  1. [作成内容の確認] ページで、設定内容を確認し、[確認] をクリックします。

  2. インスタンスリストに戻ります。約 2 分以内にインスタンスステータスが [通常] に変わります。

  3. ステータスが正常になったら、[アクション] > [クエリテスト] を使用してテストクエリを実行し、インデックスが動作していることを検証します。