Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Implemente MongoDB Search y búsqueda vectorial

Puedes implementar MongoDB Search y búsqueda vectorial en tu clúster de Kubernetes para construir potentes experiencias de búsqueda directamente en tus aplicaciones. Utilizando MongoDB Search y Vector Search, puedes crear tanto funciones tradicionales de búsqueda de texto como funciones de búsqueda vectorial impulsadas por IA que se sincronizan automáticamente con una base de datos MongoDB on-premises. Esto elimina la necesidad de mantener sistemas separados sincronizados, al tiempo que se ofrece funcionalidades avanzadas de búsqueda. Para obtener más información, consulte:

Para habilitar las capacidades de búsqueda, como búsqueda full-text y búsqueda semántica en implementaciones on-prem, debe desplegar el proceso MongoDB Search y búsqueda vectorial (mongot) y conéctelo con su implementación de la base de datos MongoDB (mongod). La implementación de mongot es opcional y solo es necesario si planeas aprovechar las funcionalidades de búsqueda que ofrece.

Los procesos de la base de datos MongoDB (mongod) actúan como el proxy para todas las consultas de búsqueda para mongot. El mongod reenvía la query al mongot, que procesa la query. El mongot devuelve los resultados de la query al mongod, que luego te envía los resultados a ti. Nunca interactúas directamente con el mongot.

Cada proceso mongot tiene su propio volumen persistente que no se comparte ni con la base de datos ni con otros nodos de búsqueda. El almacenamiento se utiliza para mantener índices que se compilan a partir de los datos obtenidos continuamente de la base de datos. Las definiciones del í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 í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.

    Cuando mongod recibe una consulta $search, $searchMeta, o $vectorSearch, dirige la consulta a uno de los nodos mongot. El mongot que recibe la query la procesa, agrega los datos y envía los resultados a mongod, que los reenvía 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. Eso significa que una implementación de 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 la conexión con el set de réplicas para obtener los datos que se utilizarán en la creación de índices y la ejecución de 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.

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 Custom Resource (CR) de MongoDBSearch, que el operador de Kubernetes detecta y comienza a desplegar mongot pods y solicita almacenamiento persistente especificado en el spec. La MongoDB Search y la búsqueda vectorial implementadas mediante el operador de Kubernetes pueden dirigirse a un set de réplicas de MongoDB implementado por el operador de Kubernetes dentro del mismo clúster de Kubernetes o a una base de datos externa completamente independiente de MongoDB. Para aprender a implementar y configurar mongot para usar:

  • Un set 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:

  • MongoDB Community implementación, debe tener un conjunto de réplicas de 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 u Ops Manager

Antes de comenzar, tenga en cuenta 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 búsqueda vectorial en Kubernetes y conectarse a un set de réplicas de MongoDB en Kubernetes o a un set de réplicas externo de MongoDB.

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

Implementa Ops Manager dentro de Kubernetes

Operador de Kubernetes

Operador de Kubernetes

Implementa Cloud Manager u Ops Manager fuera de Kubernetes

Le

Le

Implementa un set de réplicas de MongoDB

Operador de Kubernetes

Le

Crea un recurso personalizado MongoDBSearch

Le

Le

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

Operador de Kubernetes

Le

Crea configuración de mongot YAML

Operador de Kubernetes

Operador de Kubernetes

Configura los parámetros necesarios del set de réplicas en cada proceso mongod

Operador de Kubernetes

Le

Crea un usuario para mongot con el searchCoordinator rol

Kubernetes operador y usted aplicando el recurso MongoDBUser

Le

Configura el set de réplicas de MongoDB con un usuario que tenga los permisos necesarios para consultar query

Le

Le

Crea índices de búsqueda de MongoDB y Vector Search

Le

Le

Exponga los pods de búsqueda externamente para conectar 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 para el proceso mongot. Si el servidor MongoDB está dentro del clúster de Kubernetes, el operador de Kubernetes configura automáticamente la autenticación keyfile para MongoDB Search y búsqueda vectorial. Si el servidor MongoDB es externo, debes crear un secreto de Kubernetes que contenga la credencial keyfile del set de réplicas y referenciarlo en el CR 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. Cuando habilitas el TLS, el proceso mongot utiliza el certificado TLS del servidor MongoDB como certificado de cliente para la autenticación. Este certificado se verifica en comparación con el certificado CA con el que está configurado mongot. Para que la autenticación funcione correctamente, debes configurar tanto mongot como 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 los datos y las credenciales en tránsito mediante TLS. Para los comandos de gestión de índices y las consultas de búsqueda, especifica (incluso un objeto vacío, {}) spec.security.tls campo y proporciona un certificado TLS en un Secreto de Kubernetes en el campo spec.security.tls.certificateKeySecretRef. Este certificado TLS debe ser emitido y firmado por la misma CA que emitió el certificado CA que utiliza el set de réplicas de MongoDB.

Cuando el Operador de Kubernetes implemente MongoDBSearch y MongoDB, la configuración subyacente de mongot y mongod será gestionada en gran parte por el propio Operador de Kubernetes. Cuando el set de réplicas de MongoDB se implementa fuera de Kubernetes, el campo .spec.source.external.tls debe completarse con un secreto de Kubernetes que contenga el mismo certificado CA con el que se configuró mongod, y la configuración de mongod debe tener el parámetro searchTLSMode establecida en requireTLS.

En esta página