Docs Menu
Docs Home
/ /

Índices de búsqueda de MongoDB

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.

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:

  • Guíapara ejecutar una consulta de búsqueda en MongoDB

  • Guía paraejecutar una consulta de búsqueda vectorial de MongoDB

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;
}

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',
],
],
]],
);

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');

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.

Para obtener más información sobre cualquiera de los métodos analizados en esta guía, consulte la siguiente documentación de API:

Volver

Multikey Indexes

En esta página