Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Install or Uninstall mongot in a Docker Container

Você pode instalar o processo de pesquisa, mongot, no MongoDB Community Edition. O processo de pesquisa está disponível para implantação como uma imagem no Docker. O processo mongot oferece suporte a pesquisas de texto completo e pesquisas semânticas com suas próprias incorporações ou incorporações automatizadas.

Observação

Para integrar mais rapidamente com uma implantação destinada à experimentação, consulte o Início rápido de Desenvolvimento local do MongoDB Search e do MongoDB pesquisa vetorial.

Importante

mongot sincroniza dados de mongod e requer um conjunto de réplicas do MongoDB. Uma implantação autônoma mongod não aceita mongot.

Antes de implantar o mongot, conclua as seguintes etapas:

  1. Instale o Docker e o Docker Compose.

  2. Se você quiser que o MongoDB pesquisa vetorial gere automaticamente embedding para dados de texto em sua coleção, crie chaves API de serviço de ponto de extremidade. Para saber mais, consulte Embedding automatizada.

    Importante

    A incorporação automática está em visualização. O recurso e a documentação correspondente podem mudar a qualquer momento durante o período de Pré-visualização. Para **aprender** mais, consulte Visualizar recursos.

    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.

    Observação

    O ponto de extremidade do provedor para gerar incorporações depende se você cria as chaves API a partir da IU do Atlas ou diretamente do Voyage IA.

Aviso

Este procedimento fornece uma configuração padrão mínima e insegura que não permite o controle de acesso. As etapas criam uma implantação destinada apenas à experimentação local.

Antes de expor esses contêineres e usar sua configuração em produção, consulte os seguintes recursos para proteger sua implantação:

1

Para extrair a imagem do Docker do mongot, execute o seguinte comando:

docker pull mongodb/mongodb-community-search:latest

Para verificar se a imagem está no seu desktop do Docker, execute o seguinte comando:

docker image ls mongodb/mongodb-community-search
2

Para criar uma rede Docker para comunicação entre contêineres entre o banco de dados e os containers de pesquisa, execute o seguinte comando:

docker network create search-community
3

Para baixar a imagem do MongoDB Docker, execute o seguinte comando:

docker pull mongodb/mongodb-community-server:latest

Observação

Você deve ter um mínimo de MongoDB 8.3+ para usar o MongoDB Search com uma implantação on-prem. Para obter mais informações, consulte Compatibilidade de pesquisa do MongoDB.

Para obter detalhes adicionais sobre como instalar o MongoDB com Docker, consulte Instalar o MongoDB Community com Docker.

4

Crie um arquivo de senha para mongot se conectar a mongod. Selecione seu sistema operacional e execute o comando:

Substitua <mongot_password> pela sua senha e execute o seguinte comando para criar um arquivo chamado passwordFile no seu diretório atual:

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

Substitua <mongot_password> pela sua senha e execute o seguinte comando para criar um arquivo chamado passwordFile dentro de um volume nomeado gerenciado pelo Docker chamado mongot-secrets. Você faz referência a esse volume em vez de um caminho de hospedar ao iniciar mongot em uma etapa posterior.

docker volume create mongot-secrets
docker run --rm -v mongot-secrets:/secrets busybox sh -c "echo -n '<mongot_password>' > /secrets/passwordFile && chmod 400 /secrets/passwordFile"

No Windows, um arquivo de host montado por vinculação não preserva os bits de permissão do Unix dentro de um contêiner Linux. A camada de compartilhamento de arquivos do Docker Desktop substitui as permissões que você definiu no lado do NTFS, e o Windows não tem um equivalente chmod nativo. O contêiner descartável no comando anterior define as permissões corretamente no lado do Linux.

Observação

O sinalizador -n impede uma nova linha à direita.

5

Para criar seu arquivo de configuração, salve o seguinte código em mongod.conf ou no local de sua preferência.

# 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 iniciar o mongod:

  • Substitua </path/to/data/db> pelo caminho para o diretório local do volume montado.

  • Substitua </path/to/mongod.conf> pelo caminho para o arquivo de configuração que você criou acima.

  • No Windows, substitua a barra invertida (\) no final de cada linha pelo caractere de continuação de linha do seu shell. O prompt de comando usa um acento circunflexo (^) e o PowerShell usa um acento grave.

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

Execute o seguinte comando para se conectar à instância mongod que você iniciou na porta 27017:

docker exec -it mongod mongosh --port 27017
8

mongot deve ser capaz de se conectar à sua implantação do MongoDB por meio de um usuário com a função searchCoordinator.

Execute o seguinte comando para conectar ao banco de dados do admin :

use admin

Para criar um usuário com a função searchCoordinator:

  • Substitua <mongot_username> por um nome de usuário para o seu usuário mongot.

  • Substitua <mongot_password> pela senha que você especificou em seu passwordFile na etapa 4.

  • Execute o seguinte comando:

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

Para obter mais informações sobre como criar usuários, consulte Criar um usuário em implantações autogerenciadas.

9

Você pode configurar o mongot com um arquivo de configuração YAML. Você deve especificar o nome de usuário especificado na etapa anterior como syncSource.replicaSet.scramAuth.username. Você também deve especificar o passwordFile que criou na etapa anterior como syncSource.replicaSet.scramAuth.passwordFile.

Para mais informações sobre as opções de configuração do mongot, consulte Opções do mongot.

Por exemplo, você pode adaptar as configurações à sua configuração local, conforme mostrado abaixo:

# 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

Salve seu arquivo em mongot.config ou no local de arquivo de sua preferência.

Ambos os containers são executados na mesma rede search-community Docker.

10

Para iniciar o binário Search in Community (mongot), selecione seu sistema operacional e execute o comando:

  • Substitua </path/to/data/mongot> pelo caminho para o diretório local do volume montado para armazenar dados mongot.

  • Substitua </path/to/mongot.conf> pelo caminho para o arquivo de configuração do mongot que você criou na etapa anterior.

  • Substitua </path/to/passwordFile> pelo caminho para o arquivo de senha que você criou.

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
  • Substitua </path/to/data/mongot> pelo caminho para o diretório local do volume montado para armazenar dados mongot.

  • Substitua </path/to/mongot.conf> pelo caminho para o arquivo de configuração do mongot que você criou na etapa anterior.

  • Configure syncSource.replicaSet.scramAuth.passwordFile em seu arquivo de configuração mongot para "/secrets/passwordFile" em vez de "/passwordFile". O comando monta o volume mongot-secrets que você criou na etapa 4 em /secrets no contêiner.

  • No PowerShell, substitua cada acento circunflexo (^) por um acento grave. O comando usa o caractere de continuação de linha de acento circunflexo (^) para o prompt de comando.

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

Este comando:

  • Monta o volume.

  • Monta um arquivo de configuração de um volume local.

  • Especifica a faixa de portas.

  • Expõe a porta de métricas.

  • Inicia o contêiner na rede Docker do search-community com um contêiner denominado 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

O endpoint retorna uma das seguintes opções na resposta:

  • SERVING, se o processo mongot estiver em execução

    mongot pode não servir queries, pois não verifica o status dos índices, que devem estar no estado Ready para servir queries.

  • NOT_SERVING, se o processo mongot não estiver em execução

Para obter mais informações, consulte Verifique sua conexão mongot.

Para remover completamente o MongoDB Search e o MongoDB pesquisa vetorial de um sistema, remova a imagem do contêiner, os arquivos de configuração e quaisquer diretórios de dados ou log. A seção a seguir orienta você nas etapas necessárias.

1

Para descartar o usuário mongot, execute os seguintes comandos, substituindo <mongot_username> pelo nome de usuário que você criou para mongot:

use admin
db.dropUser("<mongot_username>")

Para obter detalhes, consulte db.dropUser().

2

Para interromper o processo mongot, interrompa a execução da imagem do contêiner no Docker.

3

Para remover os arquivos de configuração mongot e mongod, execute os seguintes comandos usando o caminho completo dos arquivos de configuração:

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

Para remover o arquivo de senha, execute os seguintes comandos usando o caminho completo para o arquivo de senha:

rm /path/to/passwordFile
5

Para remover o diretório de dados que armazena dados mongot, execute o seguinte comando usando o caminho completo para o diretório de dados mongot :

rm /path/to/mongot/data