Docs Menu
Docs Home
/ / /
Scala ドライバー
/

Atlas Search インデックス

Atlas Searchを使用すると、MongoDB Atlas でホストされているコレクションに対して全文検索を実行できます。 Atlas Search インデックスは、検索の動作とインデックスを作成するフィールドを指定します。

コレクションに対して次のメソッドを呼び出して、Atlas Search インデックスを管理できます。

  • createSearchIndex()

  • createSearchIndexes()

  • listSearchIndexes()

  • updateSearchIndex()

  • dropSearchIndex()

注意

Atlas Search インデックス マネジメントのメソッドは非同期で実行されるため、正常に実行されたことを確認する前に戻る可能性があります。 インデックスの現在のステータスを確認するには、 listSearchIndexes()メソッドを呼び出します。

次のセクションでは、前述の各メソッドの使用方法を示すコード例を示します。

createSearchIndex() メソッドと createSearchIndexes() メソッドを使用して、1 つ以上の Atlas Search インデックスを作成できます。

これらのメソッドを使用して Atlas Vector Search インデックス を作成することもできます。 Atlas Vector Search を使用すると、MongoDB Atlas に保存されているベクトル埋め込みに対してセマンティック検索を実行できます。 この機能の詳細については、「 Atlas Vector Search の概要 」を参照してください。

次のコード例は、Atlas 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) => ())

Atlas Search インデックスの定義に使用される構文の詳細については、Atlas マニュアルの「 Atlas Search インデックス構文規則の確認 」マニュアルを参照してください。

listSearchIndexes() メソッドを使用して、コレクション内のすべての Atlas Search インデックスを返すことができます。

次のコード例は、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, ... }

updateSearchIndex() メソッドを使用して Atlas Search インデックスを更新できます。

次のコードは、検索インデックスを更新する方法を示しています。

val updateIndex = Document("mappings" -> Document("dynamic" -> false))
collection.updateSearchIndex("<index to update>", updateIndex)
.subscribe((result: Unit) => ())

dropSearchIndex() メソッドを使用して Atlas Search インデックスを削除できます。

次のコードは、コレクションから検索インデックスを削除する方法を示しています。

collection.dropSearchIndex("<index name>")
.subscribe((result: Unit) => ())

MongoDB Atlas Search の詳細については、Atlas Search ドキュメントを参照してください。

このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

Multikey

項目一覧