The MongoDB $rankFusion aggregation stage supports $vectorSearch inside the input pipeline. You can use $rankFusion to combine multiple $vectorSearch queries against the same collection in the same pipeline. $rankFusion first executes all input pipelines independently, and then de-duplicates and combines the input pipeline results into a final ranked results set. To run multiple $vectorSearch queries against multiple collections in a single pipeline, use $unionWith.
ユースケースと利点
$rankFusionパイプラインを使用して、次の種類の$vectorSearchクエリを実行することができます。
同じフィールドに対して類似の用語を検索するために、
$vectorSearchクエリを複数実行します。これにより、データセット全体にわたって類似の用語を同じクエリ内で包括的に検索することができます。
複数のフィールドに対して同じ用語を検索するために、
$vectorSearchクエリを複数実行します。これにより、データセット内の複数のフィールドを検索し、どのフィールドがクエリに対して最適な結果を返すかを判断することができます。
異なる埋め込みモデルの複数の埋め込みに対して同じ用語を検索するために、
$vectorSearchクエリを複数実行します。これにより、さまざまな埋め込みモデルの埋め込みを検索し、異なるモデル間のセマンティックな解釈の違いを判断することができます。
チュートリアルについて
このチュートリアルでは、sample_mflix データベース内のコレクションに対してさまざまな $vectorSearch クエリを実行する方法について説明します。embedded_movies コレクション内のベクトル埋め込みを使用してサンプル クエリを試すことができます。または、自動埋め込みを使用してサンプル データの埋め込みを生成します。
前提条件
開始する前に、クラスターが前提条件に記載されている要件を満たしていることを確認してください。さらに、次のものがインストールされている必要があります。
MongoDB ベクトル検索インデックスの作成
このセクションでは、sample_mflix.embedded_movies名前空間に MongoDB ベクトル検索 インデックスを作成します。このセクションでは、さまざまなクエリを実行するために使用できるインデックス定義を示します。
MongoDB ベクトル検索クエリの実行
結果の順序を変更する
このセクションでは、$rerank ステージを使用してクエリの結果を再配列します。