文档菜单
文档首页
/ / /
PHP 库手册
/ /

MongoDB\Collection::createSearchIndexes()

本页内容

  • 定义
  • 参数
  • 返回值
  • 错误/异常
  • 行为
  • 示例
  • 另请参阅

新增在版本1.17.

MongoDB\Collection::createSearchIndexes()

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

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

此命令只能在托管在MongoDB Atlas 上的部署上运行,并需要至少 M10 的 Atlas 集群级别。也可以使用 本地 Atlas 部署 进行开发。

$indexes : array

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

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

可选的 名称 字符串字段指定要创建的搜索索引的名称。您不能在单个集合上创建具有相同名称的多个索引。如果不指定名称,则索引名为 "default"。

$options : 数组

指定所需选项的数组。

名称
类型
描述
comment
混合

启用用户指定任意注释以帮助通过 数据库分析器当前操作 输出和 日志。

作为字符串数组创建的 Atlas Search 索引的名称。

如果选项被使用且所选服务器不支持这些选项(例如 collationreadConcernwriteConcern),则会抛出 MongoDB\Exception\UnsupportedException

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

MongoDB\Driver\Exception\RuntimeException 用于扩展级别上的其他错误(例如连接错误)。

Atlas Search 索引是异步管理的。创建或更新索引后,您可以定期执行 MongoDB\Collection::listSearchIndexes() 并检查 queryable 输出字段 以确定其是否已准备好使用。

以下示例使用动态映射创建一个Atlas Search索引,以索引包含支持的数据类型的所有文档字段。

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

输出结果如下

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

返回

createSearchIndex()