Nuevo en la versión 1.17.
Definición
MongoDB\Collection::createSearchIndexes()Cree uno o más índices de búsqueda MongoDB o de búsqueda vectorial para la colección.
function createSearchIndexes( array $indexes, array $options = [] ): string Este comando solo se puede ejecutar en una implementación alojada en MongoDB Atlas requiere un nivel de clúster Atlas de al menos M.10 También se puede usar una implementación local de Atlas para el desarrollo.
Parámetros
$indexes: matrizMatriz de documentos que describen los índices a crear.
Un
definitioncampo de documento obligatorio describe el índice que se creará. Para obtener más información sobre la sintaxis de definición, consulte Sintaxis de definición de índice de búsqueda.Un campo de cadena opcional
nameespecifica el nombre del índice de búsqueda que se creará. No se pueden crear varios índices con el mismo nombre en una misma colección. Si no se especifica un nombre, el nombre predeterminado del índice esdefault.Un campo de cadena
typeopcional especifica el tipo de índice de búsqueda que se creará. Los valores aceptados son'search'y'vectorSearch'. Si no se especifica un tipo, el método crea un índice de búsqueda de MongoDB.$options: matrizUna matriz 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 generador de perfiles de base de datos, la salidacurrentOp y los registros.
Return Values
Los nombres de los índices de búsqueda MongoDB y búsqueda vectorial creados como una matriz de cadenas.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).
MongoDB\Exception\InvalidArgumentException para errores relacionados con el análisis de parámetros u opciones.
MongoDB\Controlador\Excepción\Excepción de tiempo de ejecución 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 asignaciones dinámicas para indexar todos los campos de documentos que contienen tipos de datos admitidos.
$collection = (new MongoDB\Client)->getCollection('test', 'articles'); $indexNames = $collection->createSearchIndexes( [ [ 'name' => 'test-search-index', 'definition' => ['mappings' => ['dynamic' => true]], ], ] ); var_dump($indexNames);
El resultado sería entonces similar a lo siguiente:
array(1) { [0]=> string(17) "test-search-index" }
Ver también
Referencia del comandocreateSearchIndexes en el manual de MongoDB
Documentación de búsqueda de MongoDB en el Manual de MongoDB