Menu Docs

MongoDB\Collection::createSearchIndexes()

Novidade na versão 1.17.

MongoDB\Collection::createSearchIndexes()

Create one or more Atlas Search or Vector Search indexes for the collection.

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

Esse comando só pode ser executado em uma implantação hospedada no MongoDB Atlas e requer uma camada do cluster Atlas de pelo menos M10. Um sistema local do Atlas também pode ser usado para desenvolvimento.

$indexes : array

Array de documentos que descrevem os índices a serem criados.

Um campo de documento definition obrigatório descreve o índice a ser criado. Para obter detalhes sobre a sintaxe de definição, consulte Sintaxe de definição do índiceAtlas Search .

An optional name string field specifies the name of the search index to create. You cannot create multiple indexes with the same name on a single collection. If you do not specify a name, the default index name is default.

An optional type string field specifies the type of search index to create. Accepted values are 'search' and 'vectorSearch'. If you do not specify a type, the method creates an Atlas Search index.

$options : array

Uma array especificando as opções desejadas.

Nome
Tipo
Descrição

comment

misto

Permite ao usuário especificar um comentário arbitrário para ajudar a rastrear a operação por meio do profiler de banco de dados, da saída currentOp e dos registros.

The names of the created Atlas Search and Vector Search indexes as an array of strings.

MongoDB\Exception\UnsupportedException se as opções forem usadas e não aceitas pelo servidor selecionado (p. ex., collation, readConcern, writeConcern).

MongoDB\Exception\InvalidArgumentException para erros relacionados à análise de parâmetros ou opções.

MongoDB\Driver\Exception\RuntimeException para outros erros no nível da extensão (por exemplo erros de conexão).

Atlas Search and Vector Search indexes are managed asynchronously. After creating or updating an index, you can periodically execute MongoDB\Collection::listSearchIndexes() and check the queryable output field to determine whether it is ready to be used.

O exemplo seguinte cria um índice do Atlas Search utilizando mapeamentos dinâmicos para indexar todos os campos de documento que contêm tipos de dados suportados.

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

A saída seria então semelhante a:

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