Overview
このガイドでは、Java ドライバーでAtlas Vector Search機能を使用する方法を学ぶことができます。Aggregates
ビルダークラスは、$vectorSearch パイプラインステージを作成するために使用できる vectorSearch()
ヘルパーメソッドを提供します。このパイプラインステージでは、ドキュメントに対してセマンティック検索を実行することができます。セマンティック検索とは、指定された検索語句やフレーズと意味が類似しているが、必ずしも同一ではない情報を見つける検索の一種です。
ベクトル検索の実行
この機能を使用するには、ベクトル検索インデックスを作成し、ベクトル埋め込みにインデックスを付ける必要があります。ベクトル検索インデックスをプログラムで作成する方法については、インデックスガイドの「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 numCandidates = 2; int limit = 1; VectorSearchOptions options = vectorSearchOptions().filter(gte("year", 2016)); List<Bson> pipeline = asList( vectorSearch( fieldSearchPath, queryVector, indexName, numCandidates, 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 ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。