MongoDBでテキストスコアに基づいて検索する方法


  1. テキストインデックスの作成: まず、検索対象のフィールドにテキストインデックスを作成する必要があります。次のようなコードを使用して、インデックスを作成できます。
db.posts.createIndex({ content: "text" })

上記の例では、postsコレクションのcontentフィールドにテキストインデックスを作成しています。

  1. テキストスコアに基づいて検索するクエリの実行: テキストスコアに基づいて検索するには、$text演算子を使用してクエリを作成します。以下は、テキストスコアに基づいて検索するクエリの例です。
db.posts.find({ $text: { $search: "キーワード" } })

上記の例では、postsコレクションからテキストスコアに基づいてキーワードを検索しています。

  1. テキストスコアの結果を取得する: テキストスコアの結果を取得するには、検索結果にscoreフィールドを指定します。以下のようにクエリを変更して、スコアを取得できます。
db.posts.find(
  { $text: { $search: "キーワード" } },
  { score: { $meta: "textScore" } }
)

上記の例では、scoreフィールドを取得するために$meta演算子を使用しています。

これらの方法を組み合わせることで、MongoDBでテキストスコアに基づいて検索を行うことができます。以上が基本的な手順となりますが、さらに高度な検索やパフォーマンスの最適化が必要な場合は、MongoDBのドキュメントを参照してください。