Novidade na versão 1.17.
Definição
MongoDB\Collection::createSearchIndex()Crie um índice do MongoDB Search ou do MongoDB Vector Search para a coleção.
function createSearchIndex( array|object $definition, 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
$definition: array|object- Documento que descreve o índice a ser criado. Para obter detalhes sobre a sintaxe de definição, consulte Sintaxe de definição do índice de pesquisa.
$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.
name
string
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 isdefault.type
string
Tipo de índice para criar. Os valores aceitos são
'search'e'vectorSearch'. Se você omitir esta opção, o valor padrão será'search'e o método criará um índice MongoDB Search.
Return Values
O nome do índice criado do MongoDB Search ou Vector Search como uma string.
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'); $indexName = $collection->createSearchIndex( ['mappings' => ['dynamic' => true]], ['name' => 'test-search-index'] ); var_dump($indexName);
A saída seria então semelhante a:
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