Docs Menu
Docs Home
/ /

Implementar MongoDB Search y Vector Search

Puede implementar MongoDB Search y Vector Search en su clúster de Kubernetes para crear potentes experiencias de búsqueda directamente en sus aplicaciones. Con MongoDB Search y Vector Search, puede crear funciones de búsqueda de texto tradicionales y de búsqueda vectorial con IA que se sincronizan automáticamente con una base de datos MongoDB local. Esto elimina la necesidad de mantener sincronizados sistemas separados y, al mismo tiempo, ofrece funciones de búsqueda avanzadas. Para obtener más información, consulte:

Para habilitar las capacidades de búsqueda, como la búsqueda de texto completo y semántica, en implementaciones locales, debe implementar el proceso de búsqueda MongoDB y búsqueda vectorial (mongot) y conéctelo a su implementación de base de datos MongoDB (mongod). La implementación de mongot es opcional y solo es necesaria si planea aprovechar las funciones de búsqueda que ofrece.

La base de datos MongoDB procesa (mongod) y actúa como proxy para todas las consultas de búsqueda de mongot. mongod reenvía la consulta a mongot, que la procesa. mongot devuelve los resultados de la consulta a mongod, que a su vez los reenvía a usted. Nunca interactúa directamente con mongot.

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 generados a partir de los datos que se obtienen 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.

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

  • Obtiene los datos de la base de datos.

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

  • Procesa consultas de búsqueda.

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

Los componentes mongot están estrechamente vinculados a un único conjunto de réplicas de MongoDB y no se pueden compartir entre varias bases de datos o conjuntos de réplicas. Esto significa que la implementación de un conjunto 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 una conexión con el conjunto de réplicas para obtener los datos utilizados para crear índices y ejecutar consultas.

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

No hay muchas diferencias entre la arquitectura de implementación de búsqueda con o sin el Operador de Kubernetes. El Operador de Kubernetes simplifica los pasos necesarios para implementar nodos de búsqueda totalmente funcionales, especialmente cuando la base de datos también es gestionada por el Operador de Kubernetes.

Para implementar, se aplica el recurso personalizado (CR) MongoDBSearch, que el operador de Kubernetes selecciona y comienza a implementar mongot pods y solicita el almacenamiento persistente especificado en spec. Las búsquedas de MongoDB y de vectores implementadas con el operador de Kubernetes pueden tener como destino el conjunto de réplicas de MongoDB implementado por el operador de Kubernetes dentro del mismo clúster de Kubernetes o una base de datos externa de MongoDB completamente independiente. Para aprender a implementar y configurar mongot para su uso:

  • Un conjunto de réplicas de MongoDB en Kubernetes, consulte Instalar y usar con MongoDB Community Edition o Instalar y usar Buscar con MongoDB Enterprise Edition

  • Un set de réplicas de MongoDB externo, consulta Instala y usa MongoDB Search y búsqueda vectorial con MongoDB Enterprise Edition.

Para aprovechar MongoDB Search y búsqueda vectorial en tu:

  • Implementación de la comunidad MongoDB: debe tener un conjunto de réplicas MongoDB 8.2+ completamente funcional implementado dentro de un clúster de Kubernetes utilizando el operador de Kubernetes.

  • Para la implementación de MongoDB Enterprise, debe tener un conjunto de réplicas MongoDB 8.2+ completamente funcional implementado de una de las siguientes maneras:

    • Dentro de un clúster de Kubernetes usando el operador de Kubernetes

    • Fuera de un clúster de Kubernetes

  • Instancia de Cloud Manager o Ops Manager

Antes de comenzar, considere lo siguiente:

La siguiente tabla muestra las tareas de configuración que el operador de Kubernetes realiza automáticamente y las acciones que debe realizar para implementar con éxito MongoDB Search y Vector Search en Kubernetes y conectarse a un conjunto de réplicas de MongoDB en Kubernetes o a un conjunto de réplicas de MongoDB externo.

Tarea
(Inside Kubernetes)
Performed by
(External MongoDB)
Performed by

Implementar Ops Manager dentro de Kubernetes

Operador de Kubernetes

Operador de Kubernetes

Implementar Cloud Manager u Ops Manager fuera de Kubernetes

Le

Le

Implementar un conjunto de réplicas de MongoDB

Operador de Kubernetes

Le

Crear un recurso personalizado de MongoDBSearch

Le

Le

Proporcionar una cadena de conexión al conjunto de réplicas de MongoDB

Operador de Kubernetes

Le

Crear mongot configuración YAML

Operador de Kubernetes

Operador de Kubernetes

Establezca los parámetros del conjunto de réplicas necesarios en cada proceso mongod

Operador de Kubernetes

Le

Crear usuario para mongot con rol searchCoordinator

Operador de Kubernetes y usted mediante la aplicación del recurso MongoDBUser

Le

Configurar el conjunto de réplicas de MongoDB con un usuario que tenga los permisos necesarios para realizar consultas de búsqueda

Le

Le

Crear índices de búsqueda de MongoDB y de búsqueda vectorial

Le

Le

Exponer pods de búsqueda externamente para conectarse desde cada nodo mongod

No es necesario

Le

Exponer pods mongod externamente para conectarse desde mongot nodos

No es necesario

Le

La siguiente imagen ilustra la configuración de seguridad del mongot proceso. Si el servidor MongoDB está dentro del clúster de Kubernetes, el operador de Kubernetes configura automáticamente la autenticación mediante archivo de claves para MongoDB Search y Vector Search. Si el servidor MongoDB es externo, debe crear un secreto de Kubernetes que contenga la credencial del archivo de claves del conjunto de réplicas y referenciarlo en el CR de MongoDBSearch.

Diagrama que muestra la autenticación del archivo de claves y la configuración de TLS para la búsqueda.
haga clic para ampliar

El proceso mongot autentica las conexiones mongod mediante mTLS. Al habilitar TLS, el proceso mongot utiliza el certificado TLS del servidor MongoDB como certificado de cliente para la autenticación. Este certificado se verifica con el certificado de CA configurado con mongot. Para que la autenticación funcione correctamente, debe configurar mongot y mongod con TLS habilitado.

Al configurarse para indexar un recurso de MongoDB dentro del mismo clúster de Kubernetes, el operador de Kubernetes propaga automáticamente el certificado de CA mongod a mongot y habilita mTLS para las conexiones de consultas de búsqueda si tanto los recursos MongoDB como MongoDBSearch están configurados para TLS. Si el conjunto de réplicas de MongoDB se implementa fuera de Kubernetes, debe crear un secreto de Kubernetes que contenga el certificado de CA del conjunto de réplicas y referenciarlo en el campo MongoDBSearch.spec.source.external.tls.ca para habilitar la autenticación mTLS para las solicitudes de consultas de búsqueda.

MongoDBSearch puede proteger datos y credenciales en tránsito mediante TLS. Para comandos de gestión de índices y consultas de búsqueda, especifique el campo (incluso con un objeto{} vacío,) spec.security.tls y proporcione un certificado TLS en un secreto de Kubernetes en el spec.security.tls.certificateKeySecretRef campo. Este certificado TLS debe ser emitido y firmado por la misma CA que emitió el certificado de CA que utiliza el conjunto de réplicas de MongoDB.

Cuando el operador de Kubernetes implementa MongoDBSearch y MongoDB, la configuración subyacente de mongot y mongod la gestiona en gran medida el propio operador de Kubernetes. Cuando el conjunto de réplicas de MongoDB se implementa fuera de Kubernetes, el campo .spec.source.external.tls debe rellenarse con un secreto de Kubernetes que contenga el mismo certificado de CA con el que está configurado mongod, y la configuración de mongod debe tener el parámetro searchTLSMode establecido en requireTLS.

En esta página