- テキストインデックスの作成: まず、検索対象のフィールドにテキストインデックスを作成する必要があります。次のようなコードを使用して、インデックスを作成できます。
db.posts.createIndex({ content: "text" })
上記の例では、posts
コレクションのcontent
フィールドにテキストインデックスを作成しています。
- テキストスコアに基づいて検索するクエリの実行:
テキストスコアに基づいて検索するには、
$text
演算子を使用してクエリを作成します。以下は、テキストスコアに基づいて検索するクエリの例です。
db.posts.find({ $text: { $search: "キーワード" } })
上記の例では、posts
コレクションからテキストスコアに基づいてキーワードを検索しています。
- テキストスコアの結果を取得する:
テキストスコアの結果を取得するには、検索結果に
score
フィールドを指定します。以下のようにクエリを変更して、スコアを取得できます。
db.posts.find(
{ $text: { $search: "キーワード" } },
{ score: { $meta: "textScore" } }
)
上記の例では、score
フィールドを取得するために$meta
演算子を使用しています。
これらの方法を組み合わせることで、MongoDBでテキストスコアに基づいて検索を行うことができます。以上が基本的な手順となりますが、さらに高度な検索やパフォーマンスの最適化が必要な場合は、MongoDBのドキュメントを参照してください。