Docs Menu
Docs Home
/ / /
Java Sync Driver

Atlas Vector Search

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

重要

機能の互換性

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

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

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

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

List<Double> queryVector = (asList(-0.0072121937, -0.030757688, -0.012945653));
String indexName = "mflix_movies_embedding_index";
FieldSearchPath fieldSearchPath = fieldPath("plot_embedding");
int limit = 1;
VectorSearchOptions options = exactVectorSearchOptions().filter(gte("year", 2016));
List<Bson> pipeline = asList(
vectorSearch(
fieldSearchPath,
queryVector,
indexName,
limit,
options),
project(
metaVectorSearchScore("vectorSearchScore")));

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

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ドキュメントを参照してください。

戻る

Atlas Search

項目一覧

  • Overview
  • ベクトル検索の実行
  • ベクトル検索の例
  • API ドキュメント