对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

MongoDB\Collection::createSearchIndexes()

1.17版本新增。

MongoDB\Collection::createSearchIndexes()

为集合创建一个或多个 MongoDB 搜索或 Vector 搜索 搜索索引。

function createSearchIndexes( array $indexes, array $options = []): string

此命令只能在MongoDB Atlas上托管的部署上运行,并且需要至少 M 10的Atlas 集群层级。 本地Atlas部署也可用于开发。

$indexes : array

描述要创建的索引的文档数组。

必填的definition文档字段描述了要创建的索引。 有关定义语法的详细信息,请参阅Atlas Search索引定义语法。

可选的 name 字符串字段指定要创建的搜索索引的名称。 不能在单个集合上创建多个同名索引。如果未指定名称,默认索引名称为 default。

可选的 type string 字段指定要创建的搜索索引的类型。接受的值为 'search' 和 'vectorSearch'。如果未指定类型,该方法将创建MongoDB搜索索引。

$options : array

指定所需选项的数组。

名称
类型
说明

comment

混合

使用户可以指定任意注释来帮助通过数据库分析器、currentOp 输出和日志来跟踪操作。

以大量数组形式表示的已创建MongoDB Search 和 Vector Search 索引的名称。

MongoDB\Exception\UnsupportedException,如果所选服务器使用了选项但不支持选项(例如collation、readConcern、writeConcern)。

MongoDB\Exception\InvalidArgumentException 用于与参数或选项解析相关的错误。

MongoDB\ 驱动程序\Exception\RuntimeException 用于扩展级别的其他错误(例如连接错误)。

MongoDB Search 和 Vector Search 搜索索引是异步托管的。创建或更新索引后,您可以定期执行 MongoDB\Collection::listSearchIndexes() 并检查 queryable 输出字段,以确定是否可以使用。

以下示例使用动态映射创建MongoDB搜索索引,以对包含受支持数据类型的所有文档字段进行索引。

<?php $collection = (new MongoDB\Client)->getCollection('test', 'articles'); $indexNames = $collection->createSearchIndexes( [ [ 'name' => 'test-search-index', 'definition' => ['mappings' => ['dynamic' => true]], ], ]); var_dump($indexNames);

而输出将类似如下所示:

array(1) { [0]=> string(17) "test-search-index"}