テキスト検索演算子(自己管理型配置)
注意
このページでは、自己管理型(Atlas以外)配置のテキスト クエリ機能について説明します。MongoDB Atlas でホストされているデータに対して、MongoDB は改良された全文クエリ ソリューションである Atlas Search を提供します。
クエリフレームワーク
$text
テキスト インデックス のあるコレクションでテキスト検索を実行するには、 クエリ演算子を使用します。
$text
は、空白とほとんどの句読点を区切り文字として使用して検索stringをトークン化し、検索文字string内のすべてのそのようなトークンの論理 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" } } )
制限や動作など、 $text
} 演算子と$meta
演算子の詳細については、以下を参照してください。
$meta
プロジェクション演算子
Aggregation Pipeline
集計パイプラインを使用する場合は、テキスト検索クエリを実行するために$match
と$text
式を使用します。 関連性スコアの順に結果を並べ替えるには、 ステージ$sort
[1 $meta
] で 集計演算子 を使用します。
集計操作パイプラインにおける$text
の詳細と例については、「自己管理型配置の集計パイプラインの$text」を参照してください。
MongoDB Atlas でホストされているデータの場合、Atlas Search はコレクションの全文検索を実行するための $search 集計ステージを備えています。
[1] | $meta プロジェクション演算子の動作と要件は、 $meta 集計演算子のそれと異なります。 $meta 集計演算子の詳細については、 $meta 集計演算子のリファレンス ページを参照してください。 |