Docs 菜单
Docs 主页
/ /

MongoDB Vector Search

在本指南中,您可以学习;了解如何使用MongoDB Vector Search功能对文档执行搜索。Laravel MongoDB提供了一个API来直接对模型执行MongoDB Vector 搜索查询。本指南介绍了如何创建 MongoDB Vector Search 搜索索引,并示例说明了如何使用 Laravel 集成来执行搜索。

注意

部署兼容性

仅当连接到MongoDB Atlas集群时才能使用MongoDB 向量搜索功能。此功能不适用于自管理部署。

要学习;了解有关MongoDB Vector Search 的更多信息,请参阅Atlas文档中的 概述。MongoDB 向量搜索 API 在内部使用 $vectorSearch聚合操作符来执行查询。要学习有关此操作符的更多信息,请参阅Atlas文档中的 $vectorSearch 参考资料。

注意

您可能无法将本指南中描述的方法用于每种类型的MongoDB 向量搜索查询。对于更复杂的使用案例,请使用 聚合构建者。创建聚合管道。

要对文档执行高级全文搜索,可以使用 Laravel MongoDB MongoDB Search API。要了解此功能,请参阅MongoDB 搜索指南。

您可以通过以下任一方式创建 MongoDB 搜索索引:

  • 调用Schema外观上的create()方法,并传递带有索引创建详细信息的vectorSearchIndex()辅助程序方法。要了解有关此策略的更多信息,请参见 Schema Builder 指南的管理 MongoDB Search 和 MongoDB Vector Search 索引部分。

  • 访问集合,然后从MongoDB PHP库调用 createSearchIndex() 方法。您必须将 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 集成中使用MongoDB Vector Search API 。Laravel 集成提供 vectorSearch() 方法作为查询构建者方法和 Eloquent 模型方法。您可以使用 vectorSearch() 方法对集合中的文档运行 MongoDB Vector 搜索查询。

您必须将以下参数传递给vectorSearch()方法:

Parameter
类型
说明

index

string

向量搜索索引的名称

path

string

存储向量嵌入的字段

queryVector

array

查询的向量表示

limit

int

要返回的结果数

以下代码使用在前面的创建MongoDB Vector Search 索引部分中创建的 vector索引对 movies集合执行MongoDB 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() 方法执行多种类型的MongoDB搜索查询。根据所需的查询,您可以将以下可选参数传递给 vectorSearch()

可选参数
类型
说明
默认值

exact

bool

指定是运行精确最近邻 (true) 还是近似最近邻 (false)搜索

false

filter

QueryInterface or array

为要搜索的文档指定预筛选器

不过滤

numCandidates

int or null

指定搜索过程中要使用的最近邻数量

null

注意

要构造 QueryInterface实例,您必须将 MongoDB\Builder\Query 类导入到您的应用程序中。

$vectorSearch要学习;了解有关这些参数的更多信息,请参阅Atlas文档中 操作符参考的字段部分。

后退

MongoDB Search

在此页面上