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

MongoDB ベクトル検索

In this guide, you can learn how to use the MongoDB Vector Search feature in the Kotlin driver. The Aggregates builders class provides the the vectorSearch() helper method that you can use to create a $vectorSearch pipeline stage. This pipeline stage allows you to perform a semantic search on your documents. A semantic search is a type of search which locates information that is similar in meaning, but not necessarily identical, to your provided search term or phrase.

重要

機能の互換性

この機能をサポートする MongoDB Atlas のバージョンについては、MongoDB Atlas ドキュメントの「制限」を参照してください。

この機能を使用するには、ベクトル検索インデックスとベクトル埋め込みのインデックスを作成する必要があります。プログラムによってベクトル検索インデックスを作成する方法の詳細については、インデックスガイドのMongoDB Search と MongoDB Vector Search インデックスのセクションを参照してください。ベクトル埋め込みの詳細については、Atlas ドキュメントの「ベクトル検索用のベクトル埋め込みのインデックス作成方法」を参照してください。

ベクトル埋め込みにベクトル検索インデックスを作成したら、次のセクションに示すように、パイプラインステージでこのインデックスを参照できます。

このセクションの例では、次の Kotlin データ クラスでモデル化されたデータを使用します。

data class MovieAlt(
val title: String,
val year: Int,
val plot: String,
val plotEmbedding: List<Double>
)

この例では、 vectorSearch()メソッドを使用して次の仕様で正確なベクトル検索を実行する集計パイプラインを構築する方法を示します。

  • string値のベクトル埋め込みを使用して plotEmbedding フィールド値を検索します

  • mflix_movies_embedding_indexベクトル検索インデックスを使用します

  • 1 つのドキュメントを返します

  • yearの値が少なくとも2016であるドキュメントをフィルタリングする

Aggregates.vectorSearch(
SearchPath.fieldPath(MovieAlt::plotEmbedding.name),
BinaryVector.floatVector(floatArrayOf(0.0001f, 1.12345f, 2.23456f, 3.34567f, 4.45678f)),
"mflix_movies_embedding_index",
1.toLong(),
exactVectorSearchOptions().filter(Filters.gte(MovieAlt::year.name, 2016))
)

Tip

クエリ ベクトル型

上記の例では、クエリベクトルとして機能するために BinaryVector のインスタンスを作成していますが、Double インスタンスの List を作成することもできます。 ただし、ストレージ効率を向上させるために、 BinaryVector タイプを使用することをお勧めします。

Tip

Kotlinベクトル検索の例

Visit the Atlas documentation to find more tutorials on using the Kotlin driver to perform a MongoDB Vector Search.

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