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