MongoDB\Collection::createSearchIndexes()
Novidade na versão 1.17.
Definição
MongoDB\Collection::createSearchIndexes()
Crie um ou mais índices do Atlas Search ou Vector Search para a collection.
function createSearchIndexes( array $indexes, array $options = [] ): string Este comando só pode ser executado em um sistema hospedado 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.
Parâmetros
$indexes
: arrayArray 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 .Um campo de string
name
opcional especifica o nome do índice de pesquisa para criar. Você não pode criar vários índices com o mesmo nome em uma única coleção. Se você não especificar um nome, o nome do índice padrão serádefault
.Um campo de string
type
opcional especifica o tipo de índice de pesquisa a ser criado. Os valores aceitos são'search'
e'vectorSearch'
. Se você não especificar um tipo, o método criará um índice do Atlas Search .$options
: arrayUma array especificando as opções desejadas.
NomeTipoDescriçãocomment
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.
Return Values
Os nomes dos índices Atlas Search e Vector Search criados como um array de strings.
Erros/exceções
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).
Comportamento
Os índices do Atlas Search e Vector Search são gerenciados de forma assíncrona. Após criar ou atualizar um índice, você pode executar periodicamente o MongoDB\Collection::listSearchIndexes()
e verificar o campo de saída do queryable
para determinar se ele está pronto para ser utilizado.
Exemplos
Crie um índice com mapeamentos dinâmicos
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.
$collection = (new MongoDB\Client)->getCollection('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" }
Veja também
Atlas Search Indexes guide
Referência do comando createSearchIndexes no manual MongoDB
Documentação da Atlas Search no Manual do MongoDB