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索引的名称,作为字符串。
错误/异常
如果使用且所选服务器不支持选项(例如collation
、readConcern
、writeConcern
),则抛出MongoDB\Exception\UnsupportedException
。
如果与参数或选项解析相关的错误,则抛出MongoDB\Exception\InvalidArgumentException
。
MongoDB\Driver\Exception\RuntimeException 用于其他扩展级别的错误(例如连接错误)。
行为
Atlas Search 索引是异步管理的。在创建或更新索引后,您可以定期执行 MongoDB\Collection::listSearchIndexes()
并检查 queryable
输出字段 以确定其是否准备好使用。
示例
使用动态映射创建索引
以下示例使用动态映射创建一个Atlas Search索引,以索引所有包含支持数据类型的字段。
$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"