Novedad en la versión 1.17.
Definición
MongoDB\Collection::createSearchIndex()Crea un índice de MongoDB Search o un índice de MongoDB Vector Search para la colección.
function createSearchIndex( array|object $definition, array $options = [] ): string Este comando solo se puede ejecutar en una implementación alojada en MongoDB Atlas y requiere un nivel de clúster Atlas de al menos M10. Una implementación local de Atlas también puede usarse para el desarrollo.
Parámetros
$definition: arreglo|objeto- Documento que describe el índice que se va a crear. Para más detalles sobre la sintaxis de definición, consulta Sintaxis de Definición del Índice de Búsqueda.
$options: arregloUn arreglo que especifica las opciones deseadas.
NombreTipoDescripcióncomment
mixto
Permite a los usuarios especificar un comentario arbitrario para ayudar a rastrear la operación a través del perfilador de bases de datos, la salida actualOp() y registros.
Nombre
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.tipo
string
Tipo de índice a crear. Los valores aceptados son
'search'y'vectorSearch'. Si omites esta opción, el valor por defecto es'search'y el método crea un MongoDB Search índice.
Return Values
El nombre del índice creado de MongoDB Search o búsqueda vectorial como un string.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se usan opciones que no sean compatibles con el servidor seleccionado (p. ej. collation, readConcern, writeConcern).
MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\RuntimeException para otros errores a nivel de extensión (por ejemplo, errores de conexión).
Comportamiento
Los índices de MongoDB Search y Vector Search se gestionan de forma asíncrona. Después de crear o actualizar un índice, puedes ejecutar periódicamente y comprobar MongoDB\Collection::listSearchIndexes() el queryable campo de salida para determinar si está listo para usarse.
Ejemplos
Crear un índice con mapas dinámicos
El siguiente ejemplo crea un índice de búsqueda de MongoDB utilizando mapeos dinámicos para indexar todos los campos de documentos que contengan tipos de datos admitidos.
$collection = (new MongoDB\Client)->getCollection('test', 'articles'); $indexName = $collection->createSearchIndex( ['mappings' => ['dynamic' => true]], ['name' => 'test-search-index'] ); var_dump($indexName);
La vista de salida se ilustraría como sigue:
string(17) "test-search-index"
Ver también
Guía de Índices de búsqueda de MongoDB
Referencia del comando createSearchIndexes en el manual de MongoDB
MongoDB Search documentación en el Manual de MongoDB