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