Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Arquitectura de búsqueda vectorial de MongoDB

MongoDB búsqueda vectorial permite las capacidades de búsqueda semántica con IA en su entorno de Kubernetes implementando el proceso mongot junto con la implementación de la base de datos de MongoDB (mongod). El proceso mongot gestiona los índices vectoriales, obtiene datos de la base de datos y procesa las query $vectorSearch. Esto elimina la necesidad de mantener sistemas separados sincronizados al tiempo que proporciona funcionalidades de búsqueda avanzadas.

Para implementar la búsqueda vectorial, aplique el recurso personalizado de MongoDBSearch (CR), que el operador de Kubernetes selecciona y utiliza para implementar pods mongot y solicitar el almacenamiento persistente especificado en el spec.

Para conocer los procedimientos de implementación, consulte Implementar MongoDB Search y búsqueda vectorial.

Cada proceso mongot tiene su propio volumen persistente que no se comparte con la base de datos ni con otros nodos de búsqueda. El almacenamiento se utiliza para mantener los índices vectoriales que se compilan a partir de los datos obtenidos continuamente de la base de datos. Las definiciones de índice (metadatos) se almacenan en la propia base de datos.

El mongot realiza las siguientes acciones:

  • Gestiona el índice vectorial.

    El mongot es responsable de actualizar las definiciones de índices en la base de datos.

  • Obtiene los datos de la base de datos.

    Los nodos mongot establecen conexiones permanentes con la base de datos para actualizar los índices en tiempo real.

  • Procesa consultas de búsqueda vectorial.

    Cuando mongod recibe una consulta $vectorSearch, dirige la consulta a uno de los nodos mongot. El mongot que recibe la consulta la procesa, agrega los datos y devuelve los resultados a mongod, que reenvía los resultados al usuario.

Los componentes mongot están estrechamente acoplados a un único set de réplicas de MongoDB y no pueden compartirse entre varias bases de datos o sets de réplicas. Cada implementación de set de réplicas tiene sus propios nodos de búsqueda dedicados.

La conectividad de red entre mongot y mongod va en ambas direcciones:

  • mongot establece conexiones con el set de réplicas para obtener los datos usados para crear índices y ejecutar queries.

  • mongod se conecta a mongot para reenviar operaciones relacionadas con la búsqueda, como la gestión de índices y la consulta de datos.

El mongod actúa como proxy para todas las consultas de búsqueda. Nunca interactúa directamente con el mongot.

Cuando los procesos mongot y mongod se implementan dentro del clúster de Kubernetes, el operador de Kubernetes realiza la configuración de ambos procesos automáticamente. Concretamente, el operador de Kubernetes:

  1. Encuentra el MongoDB CR referenciado por MongoDBSearch usando spec.source.mongodbResourceRef, o mediante una convención de nombres buscando el MongoDB CR con el mismo nombre que MongoDBSearch.

  2. Genera la configuración mongot en un archivo YAML y la guarda en un config map llamado <MongoDBSearch.metadata.name>-search-config.

  3. Implementa el conjunto con estado de búsqueda vectorial llamado <MongoDBSearch.metadata.name>-search con los requisitos de almacenamiento y recursos configurados de acuerdo con spec.persistence y spec.resourceRequirements en el CR.

  4. Actualiza la configuración de cada proceso mongod agregando las opciones setParameter necesarias, incluidos los nombres de host y los números de puerto de los hosts mongot.

Cuando el set de réplicas de MongoDB está fuera de Kubernetes, implementa mongot utilizando el operador de Kubernetes y realiza algunos pasos manualmente. El operador de Kubernetes gestiona la configuración de los pods de búsqueda, pero debe reconfigurar los nodos de MongoDB y la red.

Si el servidor de MongoDB está dentro del clúster de Kubernetes, el operador de Kubernetes configura automáticamente la autenticación de archivos clave para la búsqueda vectorial. Si el servidor de MongoDB es externo, debe crear un secreto de Kubernetes que contenga las credenciales de archivo de claves del set de réplicas y hacer referencia a él en el MongoDBSearch CR.

No puedes implementar búsqueda vectorial en las siguientes arquitecturas:

  • IBM Power (ppc64le)

  • IBM Z (s390x)

Tip