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

テキストクエリの実行

このガイドでは、 Lambda MongoDBを使用してテキストクエリを実行する方法を学習します。

テキストクエリを使用して、指定されたフィールドにタームまたはフレーズを含むドキュメントを取得できます。タームは、空白文字を除外する文字のシーケンスです。フレーズは、任意の数の空白文字を含むタームのシーケンスです。

This guide describes the Eloquent model methods that you can use to search text and provides examples. To learn more about Eloquent models in the Laravel Integration, see the Model Your Data section.

このガイドのコード例を実行するには、「クイック スタート 」チュートリアルを完了してください。 このチュートリアルでは、サンプル データを使用して MongoDB Atlas インスタンスを設定し、Lambda ウェブ アプリケーションで次のファイルを作成する手順を説明します。

  • Movie.php ファイル( moviesコレクション内のドキュメントを表すMovieモデルを含む)

  • MovieController.php ファイル(データベース操作を実行するためのshow()関数を含む)

  • browse_movies.blade.php データベース操作の結果を表示するための HTML コードを含む ファイル

次のセクションでは、Laravel アプリケーション内のファイルを編集して検索操作コード例を実行し、期待される出力を表示する方法について説明します。

テキストクエリを実行する前に、テキスト値フィールドにテキストインデックスを作成する必要があります。インデックスの作成の詳細については、 スキーマ ビルダガイドの「 インデックスの管理 」セクションを参照してください。

$text 演算子を使用し、その後に where() メソッドに渡すクエリフィルター内の $searchフィールドを使用して、テキストクエリを実行できます。$text 演算子は、テキストインデックス作成されたフィールドに対してテキストクエリを実行します。$searchフィールドは、検索するテキストを指定します。

where()メソッドを使用してクエリを作成したら、 get()メソッドを連鎖させてクエリ結果を検索します。

この例では、Movie Elonger モデルの where() メソッドを呼び出して、plotフィールドに "love story" というフレーズが含まれるドキュメントを検索します。このテキスト クエリを実行するには、コレクションに plotフィールドのテキストインデックスが 必要 です。

クエリを指定するには、次の構文を使用します。

$movies = Movie::where('$text', ['$search' => '"love story"'])
->get();

browse_moviesビューでクエリ結果を表示するには、 MovieController.phpファイルのshow()関数を次のコードのように編集します。

class MovieController
{
public function show()
{
$movies = Movie::where('$text', ['$search' => '"love story"'])
->get();
return view('browse_movies', [
'movies' => $movies
]);
}
}
Title: Cafè de Flore
Year: 2011
Runtime: 120
IMDB Rating: 7.4
IMDB Votes: 9663
Plot: A love story between a man and woman ...
Title: Paheli
Year: 2005
Runtime: 140
IMDB Rating: 6.7
IMDB Votes: 8909
Plot: A folk tale - supernatural love story about a ghost ...
Title: Por un puèado de besos
Year: 2014
Runtime: 98
IMDB Rating: 6.1
IMDB Votes: 223
Plot: A girl. A boy. A love story ...
...

テキストクエリは、各結果がクエリフィルター内の string にどの程度一致するかを示す数値テキスト スコアを割り当てます。関連性で結果を並べ替えるには、orderBy() メソッドを使用して textScoreメタデータフィールドで並べ替えます。$meta 演算子を使用して、このメタデータにアクセスできます。

$movies = Movie::where('$text', ['$search' => '"love story"'])
->orderBy('score', ['$meta' => 'textScore'])
->get();

Tip

orderBy()メソッドの詳細については、「 クエリ出力の変更 」ガイドの「 クエリ結果のソート 」セクションを参照してください。

Lambda 統合を使用して検索操作を実行する方法を示す実行可能なコード例については、次の使用例を参照してください。

To learn how to retrieve data based on filter criteria, see the Retrieve MongoDB Data guide.