Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Índices de búsqueda de MongoDB

En esta guía, puede aprender a administrar programáticamente sus índices de MongoDB Search y MongoDB Vector Search utilizando la librería PHP.

La funcionalidad de búsqueda de MongoDB permite realizar búsquedas en texto completo en colecciones alojadas en MongoDB Atlas. Para obtener más información sobre MongoDB Search, consulte la MongoDB Search Overview.

MongoDB Vector Search permite realizar búsquedas semánticas en incrustaciones vectoriales almacenadas en MongoDB Atlas. Para aprender más sobre MongoDB Vector Search, se puede consultar la MongoDB Vector Search Overview.

Se pueden utilizar los siguientes métodos en una MongoDB\Collection instancia para gestionar los índices de MongoDB Search y de MongoDB Vector Search:

  • MongoDB\Collection::createSearchIndex()

  • MongoDB\Collection::createSearchIndexes()

  • MongoDB\Collection::listSearchIndexes()

  • MongoDB\Collection::updateSearchIndex()

  • MongoDB\Collection::dropSearchIndex()

Nota

La gestión de MongoDB Search y MongoDB Vector Search Index es asíncrona

La biblioteca PHP de MongoDB gestiona los índices de MongoDB Search y MongoDB Vector Search de forma asíncrona. Los métodos de la librería descritos en las siguientes secciones devuelven la respuesta del servidor de inmediato, pero los cambios en sus indices de búsqueda se producen en segundo plano y pueden no completarse hasta más tarde.

Las siguientes secciones muestran ejemplos de código que demuestran cómo utilizar cada uno de los métodos anteriores.

Puedes utilizar el método createSearchIndex() para crear un único índice de Búsqueda MongoDB o de Búsqueda Vectorial MongoDB en una colección, o el método createSearchIndexes() para crear varios índices simultáneamente.

El siguiente ejemplo de código muestra cómo crear un único índice de MongoDB Search:

$searchIndexName = $collection->createSearchIndex(
['mappings' => ['dynamic' => true]],
['name' => 'mySearchIdx'],
);

El siguiente ejemplo de código muestra cómo crear un único índice de MongoDB Vector Search:

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

Después de crear índices de MongoDB Search o MongoDB Vector Search, puedes realizar los tipos de query correspondientes en tus documentos. Para obtener más información, consulta las siguientes guías:

  • guía Ejecutar una MongoDB Search query

  • Ejecutar una MongoDB Vector Search query guía

Puede utilizar el método listSearchIndexes() para devolver un arreglo de los índices de 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 usar un analizador simple en el campo title:

$collection->updateSearchIndex(
'mySearchIdx',
['mappings' => [
'dynamic' => false,
'fields' => [
'title' => [
'type' => 'string',
'analyzer' => 'lucene.simple',
],
],
]],
);

Puedes usar el método dropSearchIndex() para remover un índice de MongoDB Search o MongoDB Vector Search de una colección.

El siguiente código muestra cómo borrar el índice de búsqueda de MongoDB llamado mySearchIdx:

$collection->dropSearchIndex('mySearchIdx');

Para ver ejemplos ejecutables que demuestran cómo gestionar índices, consulte Índices para la optimización de query.

Para ver tutoriales que explican cómo utilizar la funcionalidad de MongoDB Search, consulta Cómo empezar con búsquedas en MongoDB en la documentación de Atlas.

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

Volver

Multikey Indexes

En esta página