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

Atlas 搜索索引

本页内容

  • 概述
  • 创建搜索索引
  • 列出搜索索引
  • 更新搜索索引
  • 删除搜索索引
  • 更多信息

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

有关 Atlas 搜索的更多信息,请参阅Atlas 搜索概述.

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

  • MongoDB\Collection::createSearchIndex()

  • MongoDB\Collection::createSearchIndexes()

  • MongoDB\Collection::listSearchIndexes()

  • MongoDB\Collection::updateSearchIndex()

  • MongoDB\Collection::dropSearchIndex()

注意

Atlas 搜索索引管理是异步的

MongoDB PHP 库以异步方式管理 Atlas 搜索索引。以下各节中描述的库方法会立即返回服务器响应,但您的搜索索引更改将在后台进行,可能需要一些时间才能完成。

以下各节提供了代码示例,演示了如何使用每个 Atlas 搜索索引管理方法。

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

以下代码示例演示了如何创建单个 Atlas 搜索索引

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

以下代码示例演示了如何创建多个 Atlas 搜索索引

$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 搜索查询。有关更多信息,请参阅 Atlas 文档中的创建和运行 Atlas 搜索查询

您可以使用 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 文档

返回

多键索引