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

MongoDB\Collection::createSearchIndex()

本页内容

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

版本1.17.

MongoDB\Collection::createSearchIndex()

为集合创建 Atlas Search 索引。

function createSearchIndex(
array|object $definition,
array $options = []
): string

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

$definition : array|object
描述要创建的索引的文档。有关定义语法详情,请参阅 搜索索引定义语法。
$options : array

指定所需选项的数组。

名称
类型
描述
注释
混合

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

名称
字符串

要创建的搜索索引的名称。

您不能在单个集合上创建具有相同名称的多个索引。如果您不指定名称,则索引命名为"默认"。

创建的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');
$indexName = $collection->createSearchIndex(
['mappings' => ['dynamic' => true]],
['name' => 'test-search-index']
);
var_dump($indexName);

输出结果将类似如下

string(17) "test-search-index"

返回

createIndexes()