Docs 菜单
Docs 主页
/ / /
PHP 库手册
/

Atlas Search 索引

在此页面上

  • Overview
  • 创建搜索索引
  • 搜索索引列表
  • 更新搜索索引
  • 删除搜索索引
  • 更多信息

MongoDB Atlas Search功能使您能够对Atlas上托管的集合执行全文搜索。在执行Atlas Search查询之前,您必须创建索引,指定要索引的字段以及索引的方式。

要学习;了解有关Atlas Search的详情,请参阅 Atlas Search概述。

您可以在 MongoDB\Collection实例上使用以下方法来管理Atlas Search索引:

  • MongoDB\Collection::createSearchIndex()

  • MongoDB\Collection::createSearchIndexes()

  • MongoDB\Collection::listSearchIndexes()

  • MongoDB\Collection::updateSearchIndex()

  • MongoDB\Collection::dropSearchIndex()

注意

Atlas Search索引管理是异步的

MongoDB PHP库异步管理Atlas Search索引。以下部分中描述的库方法会立即返回服务器响应,但对搜索索引的更改会在背景进行,可能要稍后一段时间才能完成。

以下部分提供了代码示例,演示了如何使用每种Atlas Search索引管理方法。

您可以使用createSearchIndex()方法在集合上创建单个Atlas Search索引,也可以使用createSearchIndexes()方法同时创建多个索引。

以下代码示例展示了如何创建单个Atlas Search索引:

$indexName = $collection->createSearchIndex(
['mappings' => ['dynamic' => true]],
['name' => 'mySearchIdx']
);

以下代码示例展示了如何创建多个Atlas Search索引:

$indexNames = $collection->createSearchIndexes(
[
[
'name' => 'SearchIdx_dynamic',
'definition' => ['mappings' => ['dynamic' => true]],
],
[
'name' => 'SearchIdx_simple',
'definition' => [
'mappings' => [
'dynamic' => false,
'fields' => [
'title' => [
'type' => 'string',
'analyzer' => 'lucene.simple'
]
]
]
],
],
]
);

创建搜索索引后,您可以对集合执行Atlas Search查询。要学习;了解更多信息,请参阅Atlas文档中的创建和运行Atlas Search查询

您可以使用listSearchIndexes()方法返回集合上的Atlas Search索引大量:

foreach ($collection->listSearchIndexes() as $indexInfo) {
echo json_encode($indexInfo), PHP_EOL;
}

您可以使用updateSearchIndex()方法更新Atlas Search索引。您可以使用此方法更改搜索索引的名称或更改索引的配置。

以下代码演示如何更新搜索索引以对title字段使用简单分析器:

$collection->updateSearchIndex(
'mySearchIdx',
['mappings' => [
'dynamic' => false,
'fields' => [
'title' => [
'type' => 'string',
'analyzer' => 'lucene.simple'
]
]
]]
);

您可以使用dropSearchIndex()方法从集合中删除Atlas Search索引。

以下代码演示如何删除名为mySearchIdx的Atlas Search索引:

$collection->dropSearchIndex('mySearchIdx');

要查看演示如何管理索引的可运行示例,请参阅使用索引优化查询。

要查看说明如何使用Atlas Search功能的教程,请参阅Atlas文档中的Atlas Search入门

要了解有关本指南中讨论的任何方法的更多信息,请参阅以下 API 文档:

后退

Multikey Indexes