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

OpenSearch:ベクトルベースのクエリ

最終更新日:Jan 03, 2025

再インデックスが完了したら、OpenSearch Vector Search Editionコンソールのクエリテストページに移動して、クエリテストを実行できます。クエリテストページでは、ベクトルベースのクエリ、プライマリキーベースのクエリ、およびベクトルとテキストによるハイブリッドクエリの3種類のクエリを実行できます。このトピックでは、ベクトルベースのクエリを実行する方法について説明します。

手順

OpenSearchインスタンスの詳細ページで、左側のナビゲーションペインの [クエリテスト] をクリックします。[ベクトルベースのクエリ] タブで、[テーブル名] ドロップダウンリストからクエリを実行するデータのテーブルを選択します。右上隅のドロップダウンリストから [フォームモード] または [開発者モード] を選択できます。デフォルトでは、[フォームモード] が選択されています。

image

フォームモード

フォームモードを選択すると、クエリパラメータがフォームに表示されます。クエリ結果はフォームの下に表示されます。一部のクエリ機能は無効になっています。

image

次のセクションでは、クエリパラメータについて説明します。

  1. テーブル名:必須。クエリ対象のデータを含むテーブル。[テーブル名] ドロップダウンリストから [使用中] 状態のテーブルを選択します。

  2. インデックス名:必須。インデックス名。テーブルを選択すると、インデックス名が自動的に指定されます。インデックス名を手動で選択する必要はありません。

  3. TopK:必須。返されるクエリ結果の最大数。デフォルト値:10。値は 0 より大きい整数である必要があります。

  4. フィルタ条件:オプション。データをクエリするためのフィルタ条件。サポートされている演算子は、>、<、=、<=、>=、および != です。AND、OR、および () を使用して複数の条件を接続できます。詳細については、「フィルタ式」をご参照ください。

  5. クエリタイプ:必須。クエリに使用されるデータのタイプ。有効な値:ベクトル、画像、およびテキスト。

  6. 名前空間:オプション。ベクトルインデックスのパーティションごとにデータをクエリするために使用される名前空間。

  7. 結果の並べ替え順序:必須。クエリ結果が並べ替えられる順序。有効な値:ASC および DESC。ASC の値は、クエリ結果が昇順で並べ替えられることを指定します。DESC の値は、クエリ結果が降順で並べ替えられることを指定します。デフォルト値:ASC。テーブルの距離タイプが内積の場合、スコアが大きいほどドキュメントの関連性が高くなります。この場合、このパラメータを DESC に設定します。テーブルの距離タイプがユークリッド距離の場合、スコアが低いほどドキュメントの関連性が高くなります。この場合、このパラメータを ASC に設定します。

  8. ベクトル:[クエリタイプ] で [ベクトル] を選択した場合は、配列タイプのベクトル値を入力します。[クエリタイプ] で [画像] を選択した場合は、ローカル画像をアップロードするか、アップロードする画像のBase64エンコード文字列を入力します。[クエリタイプ] で [テキスト] を選択した場合は、クエリするテキストコンテンツを入力します。

[クエリタイプ] で [ベクトル] を選択する

テーブルを選択すると、インデックス名が自動的に指定されます。インデックス名を手動で選択する必要はありません。[クエリタイプ] で [ベクトル] を選択すると、[ベクトル] フィールドの下にヒントが表示され、必要なベクトルの次元数が通知されます。

image

[ベクトル] フィールドに指定された次元数で構成されるベクトル値を入力し、[検索] をクリックします。クエリ結果は、次の図に示すように、フォームの下に表示されます。

image

[クエリタイプ] で [画像] を選択する

OpenSearch の組み込み埋め込み機能が有効になっているテーブルを選択した場合にのみ、[クエリタイプ] として [画像] を選択できます。テーブルを選択すると、インデックス名が自動的に指定されます。インデックス名を手動で選択する必要はありません。[クエリタイプ] で [画像] を選択すると、[画像を提供する方法] パラメータが表示されます。パラメータの有効な値は、[画像ファイルのアップロード] と [Base64エンコーディング] です。デフォルト値は [Base64エンコーディング] です。次の図は例を示しています。

image

[画像を提供する方法] で [画像ファイルのアップロード] を選択した場合は、[画像のアップロード] セクションの空白領域をクリックして、ローカル画像をアップロードします。ビジネス要件に基づいて [複数被写体認識] を有効にします。次に、[検索] をクリックします。クエリ結果はフォームの下に表示されます。

説明

複数被写体認識 を有効にすると、次のようになります。

  1. 認識されたすべての被写体はボックスで囲まれ、番号が付けられます。

  2. デフォルトでは、ピクセルサイズが最大の被写体のクエリ結果が表示され、被写体が画像内で強調表示されます。

  3. 被写体のシリアル番号をクリックして、クエリ対象の被写体を手動で切り替えることができます。クエリ結果と画像内で強調表示されている領域が対応して変化します。

重要

画像のアップロード規則:

  • 次の画像形式がサポートされています:PNG、JPG、および JPEG。

  • 画像のサイズは最大 2 MB です。

[画像を提供する方法] で [Base64エンコーディング] を選択する

image

[画像を提供する方法] で [Base64エンコーディング] を選択した場合は、アップロードする画像のBase64エンコード文字列を入力します。次に、[検索] をクリックします。クエリ結果は、次の図に示すように、フォームの下に表示されます。

image

[クエリタイプ] で [テキスト] を選択する

テーブルを選択すると、インデックス名が自動的に指定されます。インデックス名を手動で選択する必要はありません。[クエリタイプ] で [テキスト] を選択すると、[クエリタイプ] フィールドの下にヒントが表示されます。OpenSearch の組み込み埋め込み機能が有効になっているテーブルを選択した場合にのみ、[クエリタイプ] として [テキスト] を選択できます。

image

[テキスト] フィールドにクエリするテキストコンテンツを入力し、[検索] をクリックします。クエリ結果は、次の図に示すように、フォームの下に表示されます。

image

開発者モード

クエリパラメータとクエリ結果は、元のステートメントの形式で表示されます。すべてのクエリ機能がサポートされています。

image

左側のセクションでビジネス要件に基づいてクエリパラメータを設定し、[検索] をクリックします。クエリ結果は右側のセクションに表示されます。次の図は例を示しています。

image

次のサンプルコードは、単一のベクトルを使用してデータをクエリする方法の例を示しています。

{
  "vector": [0.345263,0.346272,0.33663.....],
  "topK": 10,
  "indexName": "",
  "includeVector": true,
  "namespace":"test1"
}
  • vector:ベクトル値。ベクトル値は、list[float] 形式である必要があります。ベクトル値の次元数は、エンジンで構築するベクトルインデックスの次元数と同じである必要があります。

  • topK:返されるクエリ結果の最大数。デフォルト値:10。

  • indexName:オプション。ベクトルインデックスの名前。

  • includeVector:ドキュメントにベクトル情報を返すかどうかを指定します。デフォルト値:true

  • namespace:このパラメータは、インスタンスにカテゴリが設定されている場合にのみ必須です。

次のサンプルコードは、複数のベクトルと名前空間を使用してデータをクエリする方法の例を示しています。

{
  "tableName": "gist",
  "indexName": "vec_index",
  "queries": [
    {
      "vector": [0.1, 0.2, 0.3],
      "namespace": "space_a"
    },
    {
      "vector": [0.4, 0.5, 0.6],
      "namespace": "space_b"
    }
  ]
  "topK": 3,
  "includeVector": true
}

パラメータの説明については、「ベクトルベースのクエリ」をご参照ください。

使用上の注意:

フォームモードでのクエリの制限:

  1. 複数の名前空間を使用したクエリはサポートされていません。

  2. 複数のベクトルインデックスを同時にクエリすることはできません。

  3. 複数のベクトルを使用したクエリはサポートされていません。

  4. デフォルトでは、ドキュメントのベクトル情報が返されます。

  5. デフォルトでは、ドキュメント内のすべてのフィールドの情報と値が返されます。

  6. デフォルトでは、クエリ結果のスコアがフィルタリングされます。