Atlas Vector Search
Overview
在本指南中,您可以学习;了解如何使用Atlas Vector Search功能对文档执行搜索。 Laravel MongoDB提供了一个API ,可直接对模型执行Atlas Vector Search查询。本指南介绍了如何创建Atlas Vector Search索引,并举例说明了如何使用 Laravel 集成来执行搜索。
注意
部署兼容性
仅当连接到MongoDB Atlas集群时才能使用Atlas Vector Search功能。此功能不适用于自我管理部署。
要学习;了解有关Atlas Vector Search 的更多信息,请参阅Atlas文档中的 概述。 Atlas Vector Search API在内部使用$vectorSearch
聚合操作符来执行查询。要学习;了解有关此操作符的更多信息,请参阅Atlas文档中的 $vectorSearch 参考资料。
注意
您可能无法将本指南中描述的方法用于每种类型的Atlas Vector Search查询。对于更复杂的使用案例,请使用 聚合构建器创建聚合管道。
要对文档执行高级全文搜索,可以使用 Laravel MongoDB Atlas Search API。要学习;了解此功能,请参阅Atlas Search指南。
创建 Atlas Vector Search 索引
您可以通过以下两种方式创建Atlas Search索引:
create()
在Schema
门面上调用 方法,并向vectorSearchIndex()
辅助方法传递包含索引创建详细信息。要学习;了解有关此策略的更多信息,请参阅模式构建器指南的管理Atlas Search和 Vector 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']);
执行查询
在本节中,您可以学习;了解如何在 Laravel 集成中使用Atlas Vector Search API 。 Laravel 集成提供 vectorSearch()
方法作为查询构建器方法和 Eloquent 模型方法。您可以使用 vectorSearch()
方法对集合中的文档运行Atlas Vector Search查询。
您必须将以下参数传递给vectorSearch()
方法:
Parameter | 类型 | 说明 |
---|---|---|
|
| 向量搜索索引的名称 |
|
| 存储向量嵌入的字段 |
|
| 查询的向量表示 |
|
| 要返回的结果数 |
vector
以下代码使用在前面的“创建Atlas Vector Search索引”部分中创建的movies
索引对 集合执行Atlas Vector Search查询:
$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
类导入到您的应用程序中。