Overview
MongoDB Search を使用すると、 MongoDB Atlasでホストされているコレクションに対して全文検索を実行できます。 MongoDB Search インデックスは、検索の動作とインデックスを作成するフィールド を指定します。
コレクションに対して次のメソッドを呼び出して、 MongoDB Search インデックスを管理できます。
createSearchIndex()createSearchIndexes()listSearchIndexes()updateSearchIndex()dropSearchIndex()
注意
MongoDB Searchインデックスマネジメントのメソッドは非同期で実行されるため、正常に実行されたことを確認する前に戻る可能性があります。インデックスの現在のステータスを確認するには、listSearchIndexes() メソッドを呼び出します。
次のセクションでは、前述の各メソッドの使用方法を示すコード例を示します。
検索インデックスを作成
createSearchIndex() メソッドと createSearchIndexes() メソッドを使用して、1 つ以上のMongoDB Search インデックスを作成できます。
これらのメソッドを使用してMongoDB ベクトル検索インデックス を作成することもできます。 MongoDB ベクトル検索と、 MongoDB Atlasに保存されているベクトル埋め込みに対してセマンティック検索を実行できます。この機能の詳細については、 「 MongoDB ベクトル検索 の概要 」を参照してください。
次のコード例は、 MongoDB Searchインデックスの作成方法を示しています。
val index = Document("mappings" -> Document("dynamic" -> true)) collection.createSearchIndex("<index name>", index) .subscribe((result: String) => ())
次のコード例は、複数のインデックスを作成する方法を示しています。createSearchIndex() メソッドは作成したインデックスにデフォルト名を割り当てますが、createSearchIndexes() メソッドを使用する場合は、各インデックスに名前を指定する必要があります。
val indexOne = SearchIndexModel("<first index name>", Document("mappings" -> Document("dynamic" -> true, "fields" -> Document("field1" -> Document("type" -> "string"))))) val indexTwo = SearchIndexModel("<second index name>", Document("mappings" -> Document("dynamic" -> false, "fields" -> Document("field2" -> Document("type" -> "string"))))) collection.createSearchIndexes(List(indexOne, indexTwo)) .subscribe((result: String) => ())
MongoDB Search インデックスの定義に使用される構文の詳細については、Atlas マニュアルの「 MongoDB Search インデックスシンタックスの確認 」ガイドを参照してください。
検索インデックスをリストする
コレクション内のすべてのMongoDB Search インデックスを返すには、listSearchIndexes() メソッドを使用します。
次のコード例は、listSearchIndexes() メソッドが返す Observable をサブスクライブして、コレクション内の検索インデックスのリストを出力する方法を示しています。
collection.listSearchIndexes() .subscribe((result: Document) => println(result.toJson()))
{"id": "...", "name": "<index name 1>", "type": "search", "status": "READY", "queryable": true, ... } {"id": "...", "name": "<index name 2>", "type": "search", "status": "READY", "queryable": true, ... }
検索インデックスをアップデートする
MongoDB Searchインデックス を更新するには、updateSearchIndex() メソッドを使用します。
次のコードは、検索インデックスを更新する方法を示しています。
val updateIndex = Document("mappings" -> Document("dynamic" -> false)) collection.updateSearchIndex("<index to update>", updateIndex) .subscribe((result: Unit) => ())
検索インデックスを削除する
MongoDB Searchインデックスを削除するには、dropSearchIndex() メソッドを使用します。
次のコードは、コレクションから検索インデックスを削除する方法を示しています。
collection.dropSearchIndex("<index name>") .subscribe((result: Unit) => ())
詳細情報
MongoDB Search の詳細については、 MongoDB Search のドキュメント を参照してください。
API ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。