Docs Menu

Atlas Vector Search

このガイドでは、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 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
タイプ
説明

index

string

ベクトル検索インデックスの名前

path

string

ベクトル埋め込みを保存するフィールド

queryVector

array

クエリのベクトル表現

limit

int

返される結果の数

次のコードでは、前述の「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() に渡すことができます。

任意のパラメーター
タイプ
説明
デフォルト値

exact

bool

完全最近傍(true)検索または近似近傍(false)検索を実行するかどうかを指定します

false

filter

QueryInterface or array

検索するドキュメントの事前フィルターを指定します

フィルタリングなし

numCandidates

int or null

検索中に使用する最近傍の数を指定します

null

注意

QueryInterfaceインスタンスを構築するには、MongoDB\Builder\Queryクラスをアプリケーションにインポートする必要があります。

$vectorSearchこれらのパラメータの詳細については、Atlas ドキュメントの 演算子参照の「 フィールド 」セクションを参照してください。