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

OpenSearch:EC 業界テンプレート - マルチチャネル検索

最終更新日:Apr 01, 2026

マルチモーダル検索は、テキスト検索とベクトル検索を組み合わせることで、テキスト検索だけでは対応できないクエリ (長いクエリ、スペルミスのある用語、意味的に豊かな表現など) の再現率を向上させます。マルチモーダル検索は、OR 論理演算子を使用する場合と比べて、レイテンシとコンピューティング使用量を抑えつつ、より高い精度を実現します。これらの利点は、質疑応答検索シナリオで検証されています。

マルチモーダル検索の利用シーン

次のような場合にマルチモーダル検索を使用します。

  • クエリに自然言語や長いフレーズが含まれており、形態素解析では完全な意図を捉えきれない場合。

  • 同義語拡張とスペル修正を適用しても、テキスト検索で関連性の高い結果が見つからない場合。

仕組み

マルチモーダル検索は、テキスト検索とベクトル検索を組み合わせ、設定可能なマージソートポリシーを使用してランク付けされた結果をマージします。

同じマルチモーダル取得アーキテクチャは、以下もサポートしています。

  • ベクトルベースの画像取得

  • 式ベースの取得

  • パーソナライズされた取得

クエリ beefjerky は、beef および jerky の 2 つのトークンにトークン化されます。「Tone River natural beefjerky」という内容のドキュメントも、個別のトークンにトークン化されます:ToneRivernaturalbeef、および jerky。純粋なテキスト検索では、このドキュメントを取得できません。なぜなら、テキスト検索は分析後に得られた用語に基づいてドキュメントを取得するためであり、この場合、複合語形式を一致させることができないからです。ベクトル検索では、セマンティクスの類似性に基づいてドキュメントを取得し、テキスト検索で見落とされた再現率を回復します。

前提条件

開始する前に、以下を確認してください。

  • EC 業界テンプレートの専用アプリケーションであること (共有アプリケーションではマルチモーダル検索は利用できません)。

  • アプリケーションにベクトルインデックスが設定されていること (以下の例では、Vector - General E-commerce Vector アナライザを使用します)。

マルチモーダル検索の設定

ステップ 1:アプリケーションの作成とベクトルインデックスの確認

EC 業界テンプレートのアプリケーションを作成します。アプリケーションが作成されたら、ベクトルインデックスが設定されていることを確認します。

image

ステップ 2:テキストのベクトル化を含むクエリ分析ルールの作成

クエリ分析ルールを作成します。 [テキストのベクトル化] を選択して単語ベクトル機能を有効にし、ステップ 1 で設定したベクトルインデックスを選択します。

image
ここでは、システムによって生成されたベクトルインデックスのみ選択できます。カスタムのベクトルインデックスを使用するには、チケットを送信してください。

ステップ 3:ソートポリシーの確認

デフォルトでは、アプリケーションには 2 つのソートポリシーが含まれています。粗排ソートポリシーの sys_first_default と精排ソートポリシーの sys_second_default です。これらは、次のステップでテキスト検索とベクトル検索を設定する際に参照されます。

image

ステップ 4:マルチモーダル検索ポリシーの作成

以下を設定して、マルチモーダル検索ポリシーを作成します。

  1. ポリシー名を設定します。

  2. [テキスト検索] 機能を設定します。ステップ 3 の粗排ソートポリシーと精排ソートポリシーを選択し、取得結果の割合を設定します。

  3. [ベクトル検索] 機能を設定します。ステップ 3 の粗排ソートポリシーと精排ソートポリシーを選択し、取得結果の割合を設定します。テキスト検索とベクトル検索の割合の合計は 100% にする必要があります。

  4. [マージソート] を設定します。オプションで精排ソートポリシーを選択し、マージされた結果を再ランキングします。 [ソートするドキュメント数] を 1 から 5,000 までの値に設定します。

image

ステップ 5:検索のテスト

OpenSearch コンソールでのテスト

以下のパラメーターを使用して検索を実行します。3 つのパラメーターはすべて必須です。デフォルトのクエリ分析ルールを使用する場合、qp パラメーターは省略できます。

image
query=default:'Search test'&search_strategy=sys_strategy&raw_query=Search test&qp=sys_default
パラメーター説明値の例
query検索クエリ句default:'Search test'
search_strategyマルチモーダル検索ポリシー名sys_strategy
raw_queryベクトル検索に渡される元のクエリ文字列Search test
qpクエリ分析ルール名sys_default

OpenSearch SDK for Java でのテスト

// ページングパラメーターと応答フォーマットを指定するための Config オブジェクトを作成します。
Config config = new Config(Lists.<String>newArrayList(appName));
config.setStart(0);
config.setHits(10);

// 応答フォーマットを JSON に設定します。
config.setSearchFormat(SearchFormat.FULLJSON);

// 検索リクエストを構築します。
SearchParams searchParams = new SearchParams(config);

// カスタムパラメーターを設定します。
HashMap<String, String> paraMap = new HashMap<String, String>();
paraMap.put("raw_query", "Search test");          // 元のクエリ文字列。
paraMap.put("search_strategy", "sys_strategy");   // マルチモーダル検索ポリシー名。
searchParams.setCustomParam(paraMap);

// クエリ分析ルールを設定します。
List<String> qpName = new ArrayList<String>();
qpName.add("sys_default");   // クエリ分析ルール名。
searchParams.setQueryProcessorNames(qpName);

制限事項

制約詳細
アプリケーションタイプ専用アプリケーションのみがマルチモーダル検索をサポートします
アプリケーションあたりの検索ポリシー数最大 10 個のマルチモーダル検索ポリシー
サポートされていない句aggregate 句と distinct 句はサポートされていません
検索割合テキスト検索とベクトル検索の割合の合計は 100%
ソートするドキュメント数必須。有効値の範囲は 1~5,000
ベクトルインデックスの選択単語ベクトルにはシステムが生成したベクトルインデックスのみ使用できます。カスタムのベクトルインデックスを使用するには、チケットを送信してください