Docs Menu
Docs Home
/ /

MongoDB ベクトル検索

このガイドでは、Java ドライバーで MongoDB Vector Search 機能を使用する方法について説明します。Aggregates ビルダ クラスは、$vectorSearch パイプライン ステージの作成に使用可能な vectorSearch() ヘルパー メソッドが提供されます。このパイプライン ステージでは、ドキュメントに対してセマンティック検索を実行できます。セマンティック検索では、指定された検索用語やフレーズと意味は似ているものの、必ずしも同一とは言えない情報が対象となります。

重要

機能の互換性

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

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

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

次の例は、 メソッドと メソッドを使用してベクトル検索スコアを計算する集計パイプラインを構築する方法を示しています。vectorSearch()project()

// Create an instance of the BinaryVector class as the query vector
BinaryVector queryVector = BinaryVector.floatVector(
new float[]{0.0001f, 1.12345f, 2.23456f, 3.34567f, 4.45678f});
// Specify the index name for the vector embedding index
String indexName = "mflix_movies_embedding_index";
// Specify the path of the field to search on
FieldSearchPath fieldSearchPath = fieldPath("plot_embedding");
// Limit the number of matches to 1
int limit = 1;
// Create a pre-filter to only search within a subset of documents
VectorSearchOptions options = exactVectorSearchOptions()
.filter(gte("year", 2016));
// Create the vectorSearch pipeline stage
List<Bson> pipeline = asList(
vectorSearch(
fieldSearchPath,
queryVector,
indexName,
limit,
options),
project(
metaVectorSearchScore("vectorSearchScore")));

Tip

クエリ ベクトル型

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

次の例は、集計を実行し、前述の集計パイプラインの結果からベクトル検索メタスコアを出力する方法を示しています。

Document found = collection.aggregate(pipeline).first();
double score = found.getDouble("vectorSearchScore").doubleValue();
System.out.println("vectorSearch score: " + score);

Tip

Javaドライバーベクトル検索の例

Javaドライバーを使用して Atlas Vector Search を実行する方法に関する詳細なチュートリアルについては、 Atlas のドキュメント を参照してください。

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

戻る

MongoDB Search

項目一覧