Overview
En esta guía, puede aprender a administrar mediante programación sus índices MongoDB Search y MongoDB Vector Search mediante la biblioteca PHP.
La función de búsqueda de MongoDB permite realizar búsquedas de texto completo en colecciones alojadas en MongoDB Atlas. Para obtener más información sobre la búsqueda de MongoDB, consulte Descripción general de búsqueda de MongoDB.
La Búsqueda Vectorial de MongoDB permite realizar búsquedas semánticas en incrustaciones vectoriales almacenadas en MongoDB Atlas. Para obtener más información sobre la Búsqueda Vectorial de MongoDB, consulte la Descripción General de la Búsqueda Vectorial de MongoDB.
Puede utilizar los siguientes métodos en un MongoDB\Collection instancia para administrar sus índices MongoDB Search y MongoDB Vector Search:
MongoDB\Collection::createSearchIndex()MongoDB\Collection::createSearchIndexes()MongoDB\Collection::listSearchIndexes()MongoDB\Collection::updateSearchIndex()MongoDB\Collection::dropSearchIndex()
Nota
La gestión del índice de búsqueda de MongoDB y de búsqueda vectorial de MongoDB es asincrónica
La biblioteca PHP de MongoDB gestiona los índices de búsqueda de MongoDB y de búsqueda vectorial de MongoDB de forma asíncrona. Los métodos de la biblioteca descritos en las siguientes secciones devuelven la respuesta del servidor inmediatamente, pero los cambios en los índices de búsqueda se realizan en segundo plano y podrían no completarse hasta más tarde.
Las siguientes secciones proporcionan ejemplos de código que demuestran cómo utilizar cada uno de los métodos anteriores.
Crear un índice de búsqueda
Puede utilizar el método createSearchIndex() para crear un único índice MongoDB Search o MongoDB Vector Search en una colección, o el método createSearchIndexes() para crear múltiples índices simultáneamente.
El siguiente ejemplo de código muestra cómo crear un único índice de búsqueda de MongoDB:
$searchIndexName = $collection->createSearchIndex( ['mappings' => ['dynamic' => true]], ['name' => 'mySearchIdx'], );
El siguiente ejemplo de código muestra cómo crear un único índice de búsqueda vectorial de MongoDB:
$vectorSearchIndexName = $collection->createSearchIndex( [ 'fields' => [[ 'type' => 'vector', 'path' => 'plot_embedding', 'numDimensions' => 1536, 'similarity' => 'dotProduct', ]], ], ['name' => 'myVSidx', 'type' => 'vectorSearch'], );
El siguiente ejemplo de código muestra cómo crear índices de Búsqueda de MongoDB y Búsqueda Vectorial en una sola llamada:
$indexNames = $collection->createSearchIndexes( [ [ 'name' => 'SearchIdx', 'definition' => ['mappings' => ['dynamic' => true]], ], [ 'name' => 'VSidx', 'type' => 'vectorSearch', 'definition' => [ 'fields' => [[ 'type' => 'vector', 'path' => 'plot_embedding', 'numDimensions' => 1536, 'similarity' => 'dotProduct', ]], ], ], ], );
Tras crear índices de MongoDB Search o MongoDB Vector Search, puede realizar los tipos de consulta correspondientes en sus documentos. Para obtener más información, consulte las siguientes guías:
Índices de búsqueda de listas
Puede utilizar el método listSearchIndexes() para devolver una matriz de los índices MongoDB Search y MongoDB Vector Search en una colección:
foreach ($collection->listSearchIndexes() as $indexInfo) { echo json_encode($indexInfo), PHP_EOL; }
Actualizar un índice de búsqueda
Puedes utilizar el método updateSearchIndex() para actualizar un índice de MongoDB Search o de búsqueda vectorial de MongoDB. Puede utilizar este método para cambiar el nombre o la configuración de un índice existente.
El siguiente código muestra cómo actualizar un índice de búsqueda para utilizar un analizador simple en el campo title:
$collection->updateSearchIndex( 'mySearchIdx', ['mappings' => [ 'dynamic' => false, 'fields' => [ 'title' => [ 'type' => 'string', 'analyzer' => 'lucene.simple', ], ], ]], );
Eliminar un índice de búsqueda
Puede utilizar el método dropSearchIndex() para eliminar un índice de búsqueda MongoDB o de búsqueda vectorial MongoDB de una colección.
El siguiente código muestra cómo eliminar el índice de búsqueda de MongoDB llamado mySearchIdx:
$collection->dropSearchIndex('mySearchIdx');
Información Adicional
Para ver ejemplos ejecutables que demuestran cómo administrar índices, consulte Índices para la optimización de consultas.
Para ver tutoriales que explican cómo utilizar la función de búsqueda de MongoDB, consulte Introducción a la búsqueda de MongoDB en la documentación de Atlas.
Documentación de la API
Para obtener más información sobre cualquiera de los métodos analizados en esta guía, consulte la siguiente documentación de API: