MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /
Tutorials

クエリ テキスト

MongoDB は、ドキュメント内の string コンテンツに対してテキスト クエリを実行するクエリ操作をサポートしています。テキストクエリを実行するために、 MongoDB はテキストインデックスと$text クエリ演算子を使用します。全文検索オプションの詳細については、サーバー マニュアルの テキスト検索 を参照してください。

ドライバーはテキスト クエリ フィルターの作成を容易にするための Filters.text()ヘルパーメソッドを提供します。

このガイドのコード例を実行するには、次のコンポーネントを設定する必要があります。

import org.mongodb.scala._
import org.mongodb.scala.model._

注意

このガイドでは、 クイック スタート プライマリで説明されているObservable暗黙を使用します。

まず、MongoDB 配置に接続し、 インスタンスとMongoDatabase MongoCollectionインスタンスを 宣言して定義します。

次のコードは、ポート27017localhostで実行されているスタンドアロンの MongoDB 配置に接続します。 次に、 testデータベースを参照するためのdatabase変数と、 restaurantsコレクションを参照するためのcollection変数を定義します。

val mongoClient: MongoClient = MongoClient()
val database: MongoDatabase = mongoClient.getDatabase("test")
val collection: MongoCollection[Document] = database.getCollection("restaurants")

MongoDB 配置への接続の詳細については、「 MongoDB への接続」チュートリアルを参照してください。

テキスト インデックスを作成するには、 Indexes.text()静的ヘルパーを使用してテキスト インデックスの仕様を作成し、その仕様をMongoCollection.createIndex()メソッドに渡してインデックスを作成します。

次の例では、 コレクション内のドキュメントのnameフィールドにテキスト インデックスを作成しています。

collection.createIndex(Indexes.text("name")).printResults()

テキストクエリを実行するには、Filters.text()ヘルパーメソッドを使用してクエリフィルターを指定します。

例、次のコードは nameフィールドに対してテキスト クエリを実行し、"bakery" または "coffee" の文字列と一致させます。

collection.countDocuments(Filters.text("bakery coffee")).printResults("Text query matches: ")
Text query matches: [2]

テキストクエリは、一致するドキュメントごとに、指定された テキストクエリフィルターへのドキュメントの関連性を表すスコアを割り当てます。スコアを返して並べ替えるには、プロジェクションドキュメントで $meta 演算子とソート式を使用します。

collection.find(Filters.text("bakery cafe"))
.projection(Projections.metaTextScore("score"))
.sort(Sorts.metaTextScore("score"))
.printResults()

Filters.text()ヘルパーはさまざまなテキストクエリ オプションを受け入れることができます。ドライバーは、これらのオプションを指定するための TextSearchOptionsクラスを提供します。

例、次のテキストクエリでは、"cafe" という単語に対してテキストクエリを実行するときに、 テキストクエリ言語オプションを指定します。

collection.countDocuments(Filters.text("cafe", TextSearchOptions().language("english")))
.printResults("Text query matches (english): ")
Text query matches (english): [1]

テキストクエリの詳細については、 MongoDB Serverマニュアルの次のセクションを参照してください。

戻る

変更ストリーム

項目一覧