本ガイドでは、OpenSearch Vector Search Edition インスタンスのセットアップ手順を、インスタンスの購入から最初のベクトルクエリの実行まで順を追って解説します。
前提条件
開始する前に、以下を確認してください。
OpenSearch Vector Search Edition インスタンスを購入済みであること。詳細については、「OpenSearch Vector Search Edition インスタンスの購入」をご参照ください。
データソースの準備:MaxCompute、API、または Object Storage Service (OSS)
仕組み
購入後、インスタンスは 設定待ち 状態になります。システムは、選択した Query Result Searcher (QRS) ワーカーとサーチャーワーカーの数と仕様に基づいて、空のインスタンスを自動的にデプロイします。検索クエリを実行できるようにするには、以下の手順を完了する必要があります。
テーブルの設定
データソースの追加
フィールドの設定
インデックススキーマの設定
作成の確認と再インデックスのトリガー

インスタンスの設定
インスタンス一覧で、対象のインスタンスを見つけ、操作列の [設定] をクリックして設定ページに移動します。
ステップ 1: 基本テーブル情報の設定
「インスタンス詳細」ページで、左側のペインの [テーブル管理] をクリックします。
[テーブルの追加] をクリックします。
[基本テーブル情報] の作成ウィザードステップで、以下のパラメーターを設定し、[次へ] をクリックします。
| パラメータ | 説明 |
|---|---|
| [テーブル名] | テーブルのカスタム名。 |
| [データシャード] | テーブル内のデータシャードの数。インスタンス内に複数のインデックステーブルを作成する場合、すべてのテーブルでシャード数を同じにする必要があります。あるいは、少なくとも 1 つのテーブルのシャード数を 1 とし、他のすべてのテーブルで同じシャード数にする必要があります。 |
| [データ更新用リソース数] | データ更新に使用するリソースの数。各インスタンスには、データソースごとに 2 つのリソースの無料クォータが含まれています。各リソースには、4 CPU コアと 8 GB のメモリが含まれます。無料クォータを超えるリソースは課金されます。料金の詳細については、「Alibaba Cloud 国際サイト向け Vector Search Edition の課金」をご参照ください。 |
| [シナリオテンプレート] | テーブルの作成に使用するテンプレート。オプション: [共通テンプレート]、[ベクトル: 画像検索]、[ベクトル: テキストのセマンティック検索]。 |
利用可能なシナリオテンプレートは以下の通りです:
[共通テンプレート]:プリセットされたフィールドやインデックスのない空のテンプレート。
[ベクトル: 画像検索]:OpenSearch 組み込みのベクトル変換モデルを使用して、生の画像データを密ベクトルに変換します。
[ベクトル: テキストのセマンティック検索]:テキストを密ベクトルに変換してセマンティック分析を行います。[密ベクトル検索] または [密ベクトル・疎ベクトルハイブリッド検索] を選択できます。
ステップ 2: データソースの追加
[データ同期] ステップで、データソースを追加します。OpenSearch は、MaxCompute、API、および OSS データソースをサポートしています。
以下の例では、フルデータソースとして MaxCompute + API を使用します。
[プロジェクト]、[アクセスキー]、[アクセスキーシークレット]、[テーブル]、および[パーティションキー] の各パラメーターを設定します。
[自動再インデックス作成] を [はい] または [いいえ] に設定します。
[チェック] をクリックします。チェックに合格した場合、[次へ] をクリックします。
データソースタイプ別の詳細なセットアップ手順については、以下をご参照ください:
MaxCompute:「MaxCompute データソース用のテーブルの作成」
API:「API データソース用のテーブルの作成」
OSS:「OSS データソース用のテーブルの作成」
ステップ 3: フィールドの設定
OpenSearch は、選択したシナリオテンプレートに基づいてプリセットフィールドを自動的に提供し、データソースからすべてのフィールドをインポートします。
[フィールド設定] ステップで、少なくとも 2 つの必須フィールドを設定します: [プライマリキーフィールド] と [ベクトルフィールド]。
フィールドの要件:
主キーフィールド:[タイプ] を [INT] または [STRING] に設定し、[主キー] 列でオプションを選択します。
ベクトルフィールド: [タイプ] を [FLOAT] に設定し、[ベクトルフィールド] 列のチェックボックスを選択します。ベクトルフィールドは、デフォルトで HA3 区切り文字 (
^]、UTF 形式では\x1Dとしてエンコード) で区切られる複数値フィールドです。カスタム区切り文字もサポートされています。[カテゴリフィールド] (オプション):プライマリキーフィールドとベクトルフィールドの間にカテゴリフィールドを追加して、カテゴリ別に整理されたベクトルインデックスを構築します。
ベクトルインデックスを設定する際は、次の順序でフィールドを指定します:プライマリキーフィールド → 名前空間フィールド (オプション) → ベクトルフィールド。
名前空間フィールドのタイプは、エンジンバージョンによって制約されます。エンジンバージョン vector_service_1.0.2 以前では、名前空間フィールドは STRING タイプにすることはできません。それ以降のバージョンでは、タイプに制限はありません。ステップ 4: インデックススキーマの設定
OpenSearch は、プライマリキーフィールドとベクトルフィールドのインデックスを自動的に作成し、フィールド名をインデックス名として使用します。
[インデックススキーマ] ステップで、ベクトルインデックスを設定します。
インデックス名: embedding
ベクトル次元: 128
距離タイプ: SquaredEuclidean
ベクトルインデックスアルゴリズム: Qc
リアルタイムインデックス: true
[含まれるフィールド] パラメーターは、3 つの固定フィールドのみをサポートし、拡張できません。
ベクトルインデックスの[高度な設定]を別途設定します。詳細については、「ベクトルインデックスの共通設定」をご参照ください。
特別な要件がない場合は、[次へ] をクリックして、自動設定のデフォルトで続行します。
ステップ 5: 作成の確認
確認ステップでは、設定内容を確認し、[確認] をクリックします。
確認後、システムは自動的にインデックスを構築します。推定作成時間は 2 分です。構築が完了すると、インデックスは現在のインスタンスで自動的に有効化されます。
テーブル管理一覧ページにリダイレクトされます。新規作成されたテーブルのステータスは [作成中] と表示されます。作成が完了するまでお待ちください。
ステップ 6: 変更履歴で進行状況を確認
左側のペインで、[変更履歴] をクリックします。[データソースの変更] タブでは、テーブルの作成、インデックスの作成、および全データ再インデックスに関連するすべての有限ステートマシン (FSM) を追跡できます。
ページには、2 つの操作の FSM プロセスが表示されます:
[テーブルの追加] (インデックステーブルのサブスクライブ/アンサブスクライブ):パラメータチェック、サブスクリプションステータスの変更、オンラインクラスターへの送信、およびステータスの有効化待機の各ノードを順次実行します。
[手動フルトリガー]:パラメータチェック、トリガー、およびデータソースのスキャンの各ノードを順次実行します。
各ノードの緑色のチェックマークは、そのステップが完了したことを示します。
すべての FSM が完了状態に達すると、検索エンジンの準備が整い、クエリテストを実行できます。
ステップ 7: クエリテストの実行
インスタンスをテストするには、ベクトルクエリを送信します。本番環境では、ベクトルは通常、テキストや画像入力から埋め込みモデルによって生成されます。以下のサンプルでは、事前に計算された 128 次元の浮動小数点ベクトルを使用します。
以下のサンプルクエリを使用します:
{
"vector": [0.0019676427,0.005902928,0.021644069,0.21644068,0.12199384,0.043288138,0.007870571,0.0,0.08460863,0.041320495,0.043288138,0.035417568,0.011805856,0.055093993,0.12592913,0.017708784,0.021644069,0.0019676427,0.0,0.0,0.0019676427,0.078705706,0.1987319,0.041320495,0.039352853,0.0039352854,0.007870571,0.0039352854,0.0039352854,0.017708784,0.035417568,0.06886749,0.0019676427,0.0019676427,0.013773498,0.049191065,0.2125054,0.22824654,0.123961486,0.0039352854,0.0,0.0,0.021644069,0.14560555,0.078705706,0.1987319,0.22824654,0.005902928,0.064932205,0.0019676427,0.0019676427,0.021644069,0.027546996,0.035417568,0.22824654,0.22824654,0.1337997,0.023611711,0.009838213,0.007870571,0.0039352854,0.0039352854,0.017708784,0.20069954,0.033449925,0.005902928,0.019676426,0.035417568,0.015741142,0.029514639,0.13183205,0.123961486,0.029514639,0.0,0.027546996,0.22824654,0.15741141,0.0,0.0039352854,0.043288138,0.18889369,0.072802775,0.055093993,0.17315255,0.08460863,0.0019676427,0.007870571,0.035417568,0.22824654,0.10034977,0.009838213,0.021644069,0.062964566,0.027546996,0.015741142,0.04525578,0.086576276,0.033449925,0.023611711,0.017708784,0.0,0.0,0.03738521,0.072802775,0.16724962,0.035417568,0.031482283,0.20463483,0.043288138,0.011805856,0.0039352854,0.051158708,0.023611711,0.11412327,0.13183205,0.16134669,0.049191065,0.023611711,0.0039352854,0.0039352854,0.049191065,0.035417568,0.015741142,0.0039352854,0.03738521,0.08264099,0.094446845,0.021644069],
"topK": 10,
"includeVector": true
}| フィールド | 説明 |
|---|---|
vector | クエリベクトル。 |
topK | 返される上位結果の数。 |
includeVector | 結果にベクトルデータを含めるかどうか。 |
[クエリテスト] ページは、フォームモードと開発者モードの 2 つのモードに対応しています。
フォームモードでは、フォームには[インデックス名]、[TopK]、[フィルター条件]、[名前空間]、および[結果の順序]の設定項目が含まれます。検索が完了すると、結果テーブルには距離スコア、プライマリキー、ベクトル値、属性、および名前空間の列が含まれます。
開発者モードでは、クエリパラメータに indexName も含まれ、クエリのインデックス名を指定するために使用されます。値の例: "embedding"
クエリ構文の詳細については、以下の「クエリ構文リファレンス」セクションをご参照ください。