Novidade na versão 1.17.
Definição
MongoDB\Collection::createSearchIndexes()Crie um ou mais índices do MongoDB 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
definitionobrigató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
nameopcional 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
typeopcional 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 MongoDB 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 MongoDB Search e Vector Search criados como uma 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 de pesquisa e Vector Search do MongoDB são gerenciados de forma assíncrona. Após criar ou atualizar um índice, você pode executar periodicamente o e verificar MongoDB\Collection::listSearchIndexes() o queryable campo de saída do para determinar se ele está pronto para ser utilizado.
Exemplos
Crie um índice com mapeamentos dinâmicos
O exemplo a seguir cria um índice do MongoDB Search usando mapeamentos dinâmicos para indexar todos os campos de documento que contêm tipos de dados compatíveis.
$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" }
Veja também
Guia de índices de pesquisa do MongoDB
Referência do comando createSearchIndexes no manual MongoDB
Documentação doMongoDB Search no Manual do MongoDB