Atlas Vector Search
Overview
このガイドでは、Atlas ベクトル検索機能を使用して、ドキュメントに対して検索を実行する方法を学習できます。 Lambda MongoDB は、モデルに対して Atlas ベクトル検索クエリを直接実行するためのAPIを提供します。このガイドでは、Atlas ベクトル検索インデックスの作成方法と、Lambda 統合を使用して検索を実行する方法の例を示します。
注意
配置の互換性
Atlas ベクトル検索機能は、 MongoDB Atlasクラスターに接続する場合にのみ使用できます。この機能は、自己管理型の配置では使用できません。
Atlas ベクトル検索の詳細については、Atlas ドキュメントの 概要 を参照してください。 Atlas ベクトル検索 API は、内部的には$vectorSearch
集計演算子を使用してクエリを実行します。この演算子の詳細については、Atlas ドキュメントの $vectorSearch参照を参照してください。
注意
このガイドで説明されているメソッドは、すべてのタイプの Atlas ベクトル検索クエリで使用できない場合があります。より複雑なユースケースについては、 集計ビルダを使用して集計パイプラインを作成します。
ドキュメントに対して高度な全文検索を実行するには、 Lambda MongoDB Atlas Search API を使用できます。この機能について詳しくは、 Atlas Search のガイドを参照してください。
Atlas Vector Search インデックスの作成
Atlas Searchインデックスは、次のいずれかの方法で作成できます。
create()
Schema
ファサードで メソッドを呼び出し、インデックス作成の詳細を含むvectorSearchIndex()
ヘルパーメソッドを渡します。この戦略の詳細については、 スキーマ ビルダガイドの「 Atlas Search とベクトル検索インデックスの管理 」セクションを参照してください。createSearchIndex()
コレクションにアクセスし、 MongoDB PHPライブラリから メソッドを呼び出します。次のコードに示すように、type
オプションは'vectorSearch'
として指定する必要があります。$collection = DB::connection('mongodb')->getCollection('movies'); $collection->createSearchIndex([ 'fields' => [ [ 'type' => 'vector', 'numDimensions' => 4, 'path' => 'embeddings', 'similarity' => 'cosine' ], ], ], ['name' => 'vector_index', 'type' => 'vectorSearch']);
クエリの実行
このセクションでは、Lambda 統合で Atlas ベクトル検索 API を使用する方法を学習できます。 Lambda 統合では、クエリ ビルダー メソッドとして、および Eloqueent モデル メソッドとして vectorSearch()
メソッドが提供されます。 vectorSearch()
メソッドを使用して、コレクション内のドキュメントに対して Atlas ベクトル検索クエリを実行できます。
次のパラメータをvectorSearch()
メソッドに渡す必要があります。
Parameter | タイプ | 説明 |
---|---|---|
|
| ベクトル検索インデックスの名前 |
|
| ベクトル埋め込みを保存するフィールド |
|
| クエリのベクトル表現 |
|
| 返される結果の数 |
次のコードでは、前述の「vector
Atlas ベクトル検索インデックスの作成 」セクションで作成された インデックスを使用して、movies
コレクションに対して Atlas ベクトル検索クエリを実行します。
$movies = Book::vectorSearch( index: 'vector', path: 'vector_embeddings', // Vector representation of the query `coming of age` queryVector: [-0.0016261312, -0.028070757, ...], limit: 3, );
[ { "title": "Sunrising", "plot": "A shy teenager discovers confidence and new friendships during a transformative summer camp experience." }, { "title": "Last Semester", "plot": "High school friends navigate love, identity, and unexpected challenges before graduating together." } ]
vectorSearch()
メソッドを使用して、さまざまなタイプの Atlas Search クエリを実行できます。ご希望のクエリに応じて、次の任意パラメータを vectorSearch()
に渡すことができます。
任意のパラメーター | タイプ | 説明 | デフォルト値 |
---|---|---|---|
|
| 完全最近傍( |
|
|
| 検索するドキュメントの事前フィルターを指定します | フィルタリングなし |
|
| 検索中に使用する最近傍の数を指定します |
|
注意
QueryInterface
インスタンスを構築するには、MongoDB\Builder\Query
クラスをアプリケーションにインポートする必要があります。
$vectorSearch
これらのパラメータの詳細については、Atlas ドキュメントの 演算子参照の「 フィールド 」セクションを参照してください。