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

Install or Uninstall MongoDB Search on Community in a Docker Container

Podés instalar el proceso de búsqueda, mongot, en MongoDB Community Edition. El proceso de búsqueda está disponible para su implementación como imagen en Docker. El proceso mongot ofrece soporte de texto completo y búsqueda semántica con tus propias incrustaciones o incrustaciones automatizadas.

Nota

Para incorporarse más rápidamente a una implementación destinada a la experimentación, consulta los siguientes tutoriales sobre implementaciones autogestionadas:

Antes de implementar mongot, debes completar los siguientes pasos:

  1. Instala Docker y Docker Compose.

  2. If you want MongoDB Vector Search to automatically generate embeddings for text data in your collection, create endpoint service API keys. To learn more, see Automated Embedding.

    Importante

    La incrustación automatizada está en modo de vista previa. La funcionalidad y la documentación correspondiente pueden cambiar en cualquier momento durante el periodo de Vista previa. Para obtener más información, consulte Funcionalidades de vista previa.

    If you don't already have the keys, create the endpoint service API keys from the Atlas UI. We recommend that you create two keys, one for generating embeddings at index-time and another for generating embeddings at query-time, from two Atlas projects.

    Nota

    El endpoint de tu proveedor para generar embeddings depende de si creas las claves API desde la interfaz de usuario de Atlas o directamente desde Voyage IA.

Advertencia

This procedure provides a simple and insecure default configuration that does not enable access control. The steps create a deployment intended for local experimentation only.

Before exposing these containers and using your setup in production, see the following resources to secure your deployment:

1

Para obtener la imagen de Docker mongot, ejecuta el siguiente comando:

docker pull mongodb/mongodb-community-search:latest

Para verificar que la imagen está en su Docker Desktop, ejecute el siguiente comando:

docker image ls mongodb/mongodb-community-search
2

Para crear una red de Docker para la comunicación entre contenedores de la base de datos y los contenedores de búsqueda, ejecute el siguiente comando:

docker network create search-community
3

Para descargar la imagen de Docker de MongoDB, ejecute el siguiente comando:

docker pull mongodb/mongodb-community-server:latest

Nota

You must have a minimum of MongoDB 8.2+ to use MongoDB Search with an on-prem deployment. For more information, see MongoDB Search Compatibility.

Para obtener detalles adicionales sobre la instalación de MongoDB con Docker, consulte Instalar MongoDB Community con Docker.

4

Crea un archivo de contraseña para mongot para conectarte a mongod.

Por ejemplo, se debe seleccionar el sistema operativo y reemplazar <mongot_password> con la contraseña. A continuación, se debe ejecutar el siguiente comando para crear un archivo llamado passwordFile:

echo -n "<mongot_password>" > passwordFile
chmod 400 passwordFile

Nota

La opción -n evita una nueva línea al final.

5

Para crear el archivo de configuración, se debe guardar el siguiente código en mongod.conf o en la ubicación de preferencia.

# MongoDB Configuration File
# Network configuration
net:
port: 27017
bindIpAll: true # Equivalent to --bind_ip_all
# Replica set configuration
replication:
replSetName: rs0
# Search configuration parameters
setParameter:
# Server parameters to advise mongod of mongot availability for search index management and querying
searchIndexManagementHostAndPort: mongot-community.search-community:27028
mongotHost: mongot-community.search-community:27028
skipAuthenticationToSearchIndexManagementServer: false
useGrpcForSearch: true
searchTLSMode: disabled
6

Para comenzar el mongod:

  • Replace <your_admin_username> with the username you want to specify for your admin user.

  • Replace <your_admin_password> with the password you want to specify for your admin user.

  • Replace </path/to/data/db> with the path to the local directory for the mounted volume.

  • Replace </path/to/mongod.conf> with the path to the configuration file you created above.

docker run --rm \
--name mongod \
-v </path/to/mongod.conf>:/etc/mongod.conf:ro \
-v </path/to/data/db>:/data/db \
-p 27017:27017 \
--network search-community \
mongodb/mongodb-community-server:latest \
--config /etc/mongod.conf \
--replSetMember=mongod.search-community:27017
7

Se debe ejecutar el siguiente comando para realizar la conexión a la instancia mongod que se inició en el puerto 27017, reemplazando <your_admin_username> y <your_admin_password> por el nombre de usuario y la contraseña que se creó para el usuario administrador.

docker exec -it mongod mongosh --port 27017
8

mongot must be able to connect to your MongoDB deployment through a user with the searchCoordinator role.

Ejecute el siguiente comando para conectarse a la base de datos admin:

use admin

Para crear un usuario con el rol searchCoordinator:

  • Replace <your-mongot-username> with a username for your mongot user.

  • Se debe reemplazar <your-mongot-password> con la contraseña que se especificó en el passwordFile en el paso 5.

  • Ejecuta el siguiente comando:

db.createUser(
{
user: "<mongot_username>",
pwd: "<mongot_password>",
roles: [ "searchCoordinator" ]
}
)

For more information on creating users, see Create a User on Self-Managed Deployments.

9

Puedes configurar mongot con un archivo de configuración YAML. Debes especificar el nombre de usuario que especificaste en el paso anterior como el syncSource.replicaSet.username. También debes especificar el passwordFile que creaste en el paso anterior como el syncSource.replicaSet.passwordFile.

For more information on mongot configuration options, see mongot Options.

Por ejemplo, se puede adaptar la configuración al entorno local como se muestra a continuación:

# mongot.conf
syncSource:
replicaSet:
hostAndPort: "mongod.search-community:27017"
scramAuth:
username: "mongotUser"
passwordFile: "/passwordFile"
authSource: "admin"
tls:
enabled: false
replicationReader:
readPreference: "secondaryPreferred"
storage:
dataPath: "/data/mongot"
server:
grpc:
address: "mongot-community.search-community:27028"
tls:
mode: "disabled"
metrics:
enabled: true
address: "mongot-community.search-community:9946"
healthCheck:
address: "mongot-community.search-community:8080"
logging:
verbosity: INFO

Guarde su archivo en mongot.config o en la ubicación que prefiera.

Ambos contenedores se ejecutan en la misma red Docker search-community.

10

Para iniciar el binario de búsqueda en Community, mongot:

  • Replace </path/to/data/mongot> with the path to the local directory for the mounted volume to store mongot data.

  • Reemplaza </path/to/mongot.conf> por la ruta hacia el archivo de configuración mongot que creaste en el paso anterior.

  • Reemplaza </path/to/passwordFile> con la ruta al archivo de contraseñas que creaste.

docker run --rm \
--name mongot-community \
-v </path/to/data/mongot>:/data/mongot \
-v </path/to/mongot.conf>:/mongot-community/config.default.yml \
-v </path/to/passwordFile>:/passwordFile:ro \
--network search-community \
-p 8080:8080 \
-p 9946:9946 \
mongodb/mongodb-community-search:latest

Este comando:

  • Monta el volumen.

  • Monta un archivo de configuración desde un volumen local.

  • Especifica el rango de puertos.

  • Expone el puerto de métricas.

  • Inicia el contenedor en la red Docker search-community con un contenedor llamado mongot-community.

11

To verify, send a request by using a HTTP client or curl to the /health endpoint. For example, send a curl request similar to the following sample request:

curl localhost:8080/health

El endpoint devuelve uno de los siguientes en la respuesta:

  • SERVING, if the mongot process is running

    mongot might not serve queries as it doesn't check the status of the indexes, which must be in Ready state to serve queries.

  • NOT_SERVING, if the mongot process isn't running

For more information, see Verify Your mongot Connection.

To completely remove MongoDB Search and MongoDB Vector Search from a system, remove the container image, the configuration files, and any data or log directories. The following section guides you through the necessary steps.

1

Para descartar al usuario mongotUser, ejecute los siguientes comandos:

use admin
db.dropUser("mongotUser")

For details, see db.dropUser().

2

Para detener el proceso mongot, detén la imagen del contenedor que se está ejecutando en Docker.

3

Para remover los archivos de configuración mongot y mongod, ejecuta los siguientes comandos utilizando la ruta completa a tus archivos de configuración:

rm /path/to/config.default.yml
rm /path/to/mongod.conf
4

To remove the password file, run the following commands using the full path to the password file:

rm /path/to/passwordFile
5

Para remover el directorio de datos que almacena los datos de mongot, se debe ejecutar el siguiente comando utilizando la ruta completa al directorio de datos mongot:

rm /path/to/mongot/data