このチュートリアルでは、同一のクエリ条件についてフルテキスト検索とセマンティック検索を集計するハイブリッド検索について解説します。全文検索はクエリ用語の完全一致を見つけるのに効果的ですが、セマンティック検索には、完全に同じクエリ用語ドキュメントに含まれていなくても、意味的に類似したドキュメントを識別できるという追加の利点があります。同義語や文脈的に類似した一致も、両方の検索方法の結果に確実に含めることができます。
逆に、データセットで使用されるのと同じコンテキストで埋め込みモデルの訓練で考慮されることが予想されない場合は、ベクトル検索に次のことがメリットをもたらす可能性があります。全文検索と組み合わせて使用します。
クエリごとに、各検索方法の重みを設定することもできます。 全文検索結果とセマンティック検索結果がクエリに最も関連し、適切であるかどうかに基づいて、クエリごとのその検索方法の重みを増やすことができます。
$rerankまたは$rankFusion $scoreFusionステージの後に ステージを使用することで、クエリに対する関連性に基づいて結果のドキュメントの順序を並べ替えることができます。$rerank ステージは、Voyage AI リランカー モデルに基づいてドキュメントの順序を並べ替えます。
チュートリアルについて
このチュートリアルでは、統合検索結果を得るために、映画の詳細を含む sample_mflix.embedded_moviesコレクションに対してMongoDB ベクトル検索とMongoDB Search クエリを組み合わせたハイブリッド検索を実行する方法を説明します。具体的には、このチュートリアルでは次の手順について説明します。
MongoDB ベクトル検索インデックスを
plot_embedding_voyage_4_largeフィールドに作成します。このフィールドには、映画のプロットの概要を表すベクトル埋め込みが含まれています。sample_mflix.embedded_moviesコレクションのfullplotフィールドにMongoDB Searchインデックスを作成します。このフィールドには、映画名がテキスト string として含まれています。$rankFusionまたは$scoreFusionを使用するクエリを実行して、plot_embedding_voyage_4_largeフィールドに対する$vectorSearchクエリとfullplotフィールドに対する$searchクエリの結果を組み合わせ、$rerankステージを使用してクエリへの関連度に基づいて結果内のドキュメントを並べ替えます。
前提条件
始める前に、前提条件を完了してください。