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.
Instale o MongoDB Search e a pesquisa vetorial com o Docker
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.
Antes de começar
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:
Instale o Docker e o Docker Compose.
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.
Procedimento
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:
Baixe a imagem do MongoDB Docker.
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.
Create a mongot sync-user password file.
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.
Crie seu arquivo de configuração mongod.
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
Start your mongod.
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
Create a user for the mongot process on your MongoDB deployment.
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áriomongot.Substitua
<mongot_password>pela senha que você especificou em seupasswordFilena 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.
Especifique suas opções de configuração de pesquisa.
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.
Inicie o processo de mongot.
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 dadosmongot.Substitua
</path/to/mongot.conf>pelo caminho para o arquivo de configuração domongotque 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 dadosmongot.Substitua
</path/to/mongot.conf>pelo caminho para o arquivo de configuração domongotque você criou na etapa anterior.Configure
syncSource.replicaSet.scramAuth.passwordFileem seu arquivo de configuraçãomongotpara"/secrets/passwordFile"em vez de"/passwordFile". O comando monta o volumemongot-secretsque você criou na etapa 4 em/secretsno 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-communitycom um contêiner denominadomongot-community.
Verify the health of the mongot process.
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 processomongotestiver em execuçãomongotpode não servir queries, pois não verifica o status dos Ãndices, que devem estar no estadoReadypara servir queries.NOT_SERVING, se o processomongotnão estiver em execução
Para obter mais informações, consulte Verifique sua conexão mongot.
Desinstalar o MongoDB Search e o MongoDB pesquisa vetorial com o Docker
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.
Drop the mongot user.
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().