AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

MongoDB Search

このガイドでは、MongoDB検索インデックスをクエリし、PyMongoアプリケーションで高度な全文検索機能を使用する方法を学ぶことができます。$search集計パイプライン ステージを使用して検索インデックスをクエリできます。

$searchパイプラインステージの詳細については、 MongoDB Serverマニュアルの $searchガイドを参照してください。

注意

MongoDB v4.2 以降の Atlas でのみ利用可能

$search 集計パイプライン演算子は、MongoDB v4.2 以降を実行している MongoDB Atlas クラスターでホストされ、MongoDB Search インデックスでカバーされているコレクションでのみ利用できます。必要なセットアップとこの演算子の機能について学ぶには、MongoDB Search ドキュメントを参照してください。

このガイドの例では、 Atlas サンプル データセットのsample_mflix.moviesコレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 PyMongo を使い始める 」を参照してください。

Atlasコレクションで検索を実行する前に、まずコレクションに検索インデックスを作成する必要があります。MongoDB 検索インデックスは、検索可能な形式でデータを分類するデータ構造です。MongoDB 検索インデックスの作成方法については、MongoDB Search およびベクトル検索インデックスを参照してください。

$search集計パイプライン ステージを使用するには、実行するクエリのタイプを示すMongoDB 検索するクエリ演算子を指定する必要があります。オプションで、値または範囲で結果をグループ化するコレクターを指定することもできます。MongoDB Search で使用可能なすべての演算子とコレクターのテーブルを表示するには、MongoDB 検索クエリでの演算子とコレクターの使用を参照してください。

次の例では、compound 演算子を使用して複数の演算子を 1 つのクエリに結合します。compound 演算子の詳細については、MongoDB Atlas ドキュメントの複合演算子ガイドを参照してください。

クエリには次の検索条件があります。

  • genres フィールドに Comedy を含めることはできません。

  • title フィールドには string New York が含まれている必要があります。

クエリには、次のステージが含まれます。

  • $limitを使用して、出力結果を 10 に制限します。

  • $project を使用して、title 以外のすべてのフィールドを除外し、score という名前のフィールドを追加します。

client = pymongo.MongoClient("<connection-string>")result = client["sample_mflix"]["movies"].aggregate([ { "$search": { "index": "pymongoindex", "compound": { "mustNot": [ { "text": { "query": [ "Comedy" ], "path": "genres" } } ], "must": [ { "text": { "query": [ "New York" ], "path": "title" } } ], } } }, { "$limit": 10 }, { "$project": { "_id": 0, "title": 1, "score": { "$meta": "searchScore" } } }]) for i in result: print(i)

使用可能なMongoDB Search 演算子の詳細については、 MongoDB Atlasドキュメントの「 演算子とコレクター 」ガイドを参照してください。

MongoDB 検索するの詳細と、その他のクエリの例については、MongoDB 検索するドキュメントを参照してください。

Atlas に保存されているデータに対してベクトル検索を実行する場合は、 MongoDB ベクトル検索 を使用する必要があります。MongoDB ベクトル検索の詳細については、MongoDB ベクトル検索のドキュメントを参照してください。