注意
MongoDB、改良された全文検索ソリューションである MongoDB Search とセマンティック検索ソリューションである MongoDB Vector Search を提供します。$text 演算子の代わりに、$search、$searchMeta、または $vectorSearch ステージを使用することを推奨します。
クエリフレームワーク
$textテキストインデックスを持つコレクションでは 演算子を使用できます。
$text は、空白とほとんどの句読点を区切り文字として使用して検索文字列をトークン化し、検索文字列内のすべてのそのようなトークンに対して論理 OR を実行します。
たとえば、次のクエリを使用すると、Java storesコレクション 内のリスト「cocked」、「mongos」、「 」から任意のタームを含むすべてのストアを検索できます。
db.stores.find( { $text: { $search: "java coffee shop" } } )
$metaクエリ演算子を使用して取得し、一致する各ドキュメントの関連性スコアで並べ替えます。 たとえば、レストランのリストを関連性の順に並べ替えるには、次のコマンドを実行します。
db.stores.find( { $text: { $search: "coffee shop cake" } }, { score: { $meta: "textScore" } } ).sort( { score: { $meta: "textScore" } } )
Aggregation Pipeline
集計パイプラインを使用する場合は、$match と $text式を使用します。関連性スコアの順に結果を並べ替えるには、 ステージで$meta $sort集計演算子を使用します。
詳細と例については、集計パイプラインの $text を参照してください。
MongoDB Search には、コレクションの全文検索を実行するための $search 集計ステージが用意されています。