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.

Use o MongoDB Search e o Vector Search

Se você instalou o recurso MongoDBSearch com êxito, poderá criar índices de pesquisa do MongoDB Pesquisa e Vector Pesquisa como mdb-user e executar queries de pesquisa do MongoDB Pesquisa e Vector Pesquisa usando os índices. Esta página descreve como carregar dados de amostra, criar índices de pesquisa do MongoDB e do Vector pesquisa para os dados e executar queries de pesquisa do MongoDB e do Vector pesquisa nos dados.

Para usar o MongoDB Search e o Vector Search, você deve ter o seguinte:

1
  1. Para definir as variáveis de ambiente para uso nas etapas subsequentes deste procedimento, copie o seguinte, defina os valores para as variáveis de ambiente e carregue as variáveis de ambiente:

    # The env vars here are all commented out because this snippets module# is reusable across different MongoDB deployments and all the necessary variables# should be already defined there. # set it to the context name of the k8s cluster#export K8S_CTX="<local cluster context>"# the following namespace will be used to deploy mongodb tools pod#export MDB_NS="mongodb" # regular user performing restore and search queries on sample mflix database# the user should be able to restore database using mongorestore#export MDB_USER_PASSWORD="mdb-user-password-CHANGE-ME" # name of MongoDB or MongoDBCommunity resource in case it's deployed in the same cluster# user only for the connection string in MDB_CONNECTION_STRING env var below#export MDB_RESOURCE_NAME="mdbc-rs" # TLS-related resources used by the snippets in this module#export MDB_TLS_CA_SECRET_NAME="${MDB_RESOURCE_NAME}-ca"#export MDB_TLS_CA_CONFIGMAP="${MDB_RESOURCE_NAME}-ca-configmap"#export MDB_TLS_SERVER_CERT_SECRET_NAME="${MDB_RESOURCE_NAME}-tls"#export MDB_SEARCH_TLS_SECRET_NAME="${MDB_RESOURCE_NAME}-search-tls" # default connection string if MongoDB database is deployed using the operator#export MDB_CONNECTION_STRING="mongodb://mdb-user:${MDB_USER_PASSWORD}@${MDB_RESOURCE_NAME}-0.${MDB_RESOURCE_NAME}-svc.${MDB_NS}.svc.cluster.local:27017/?replicaSet=${MDB_RESOURCE_NAME}"# To enable TLS for the shared snippets, append driver options directly to the connection string, for example:#export MDB_CONNECTION_STRING="mongodb://mdb-user:${MDB_USER_PASSWORD}@${MDB_RESOURCE_NAME}-0.${MDB_RESOURCE_NAME}-svc.${MDB_NS}.svc.cluster.local:27017/?replicaSet=${MDB_RESOURCE_NAME}&tls=true&tlsCAFile=/tls/ca.crt"
  2. Para se conectar usando a string de conexão habilitada para TLS , conforme mostrado (na linha 27) no arquivo env_variables.sh, baixe o certificado CA público para o serviço MongoDBSearch para que o cliente mongosh possa referenciá-lo.

2

Implemente um pod denominado mongodb-tools-pod para executar o cliente MongoDB FERRAMENTAS como mongosh e mongorestore a partir do cluster Kubernetes. A execução de um pod dentro do cluster simplifica a conectividade com o mongodb sem precisar expor o banco de dados externamente.

O comando a seguir implementa um pod chamado mongodb-tools-pod que executa uma imagem do servidor do MongoDB Community . O pod é mantido em execução com um comando sleep infinity para permitir que você use kubectl exec para executar o cliente MongoDB FERRAMENTAS.

kubectl apply -n "${MDB_NS}" --context "${K8S_CTX}" -f - <<EOFapiVersion: v1kind: Podmetadata: name: mongodb-tools-pod labels: app: mongodb-toolsspec: containers: - name: mongodb-tools image: mongodb/mongodb-community-server:${MDB_VERSION%-ent}-ubi8 command: ["/bin/bash", "-c"] args: ["sleep infinity"] volumeMounts: - name: mongo-ca mountPath: /tls readOnly: true restartPolicy: Never volumes: - name: mongo-ca configMap: name: ${MDB_TLS_CA_CONFIGMAP:-"${MDB_RESOURCE_NAME}-ca-configmap"} optional: true items: - key: ca.crt path: ca.crtEOF echo "Waiting for the mongodb-tools to be ready..."kubectl --context "${K8S_CTX}" -n "${MDB_NS}" wait --for=condition=Ready pod/mongodb-tools-pod --timeout=60s
3

Importe o banco de dados do sample_mflix , que contém as seguintes collections:

Nome da collection
Descrição

comments

Contém comentários associados a filmes específicos.

embedded_movies

Contém detalhes sobre filmes nos gêneros Western, Action e Fantasy da coleção movies com os seguintes campos adicionais:

  • plot_embedding_voyage_3_large - Contém incorporações 2048d criadas a partir do campo plot usando o modelo de incorporação voyage-3-large da Voyage AI e convertidas em binData para armazenamento e recuperação eficientes.

  • plot_embedding - Contém incorporações 1536d criadas a partir do campo plot usando o modelo de incorporação text-embedding-ada-002 da OpenAI e convertidas em binData para armazenamento e recuperação eficientes.

movies

Contém informações sobre o filme, incluindo ano de lançamento, diretor e avaliações.

sessions

theaters

Contém localizações de salas de cinema.

users

Contém informações do usuário.

O seguinte comando baixa o conjunto de dados de amostra e utiliza o mongorestore para carregar os dados no banco de dados do sample_mflix em seu deployment do MongoDB , conectando como o mdb-user.

# Restore sample_mflix database. Provide any TLS parameters directly within MDB_CONNECTION_STRING.kubectl exec -n "${MDB_NS}" --context "${K8S_CTX}" \ mongodb-tools-pod -- env MDB_CONNECTION_STRING="${MDB_CONNECTION_STRING}" /bin/bash -eu -c "$(cat <<'EOF'echo "Downloading sample database archive..."curl -fSL https://atlas-education.s3.amazonaws.com/sample_mflix.archive -o /tmp/sample_mflix.archive echo "Restoring sample database"mongorestore \ --archive=/tmp/sample_mflix.archive \ --verbose=1 \ --drop \ --nsInclude 'sample_mflix.*' \ --uri="${MDB_CONNECTION_STRING}"EOF)"
4

Você pode criar uma pesquisa MongoDB ou um índice de Vector Search . Você deve criar um índice do MongoDB Search para executar queries $search e $searchMeta e um índice do Vector Search para executar queries $vectorSearch.

  • O MongoDB Search fornece definições de índice flexíveis que suportam mapeamentos de campo dinâmicos e estáticos, vários analisadores (padrão, específicos de idioma, personalizado) e recursos como sinônimos e pesquisa facetada. Para saber mais, consulte Definir seu índice.

  • O Vector Search fornece uma definição de índice simples que suporta a consulta de incorporações vetoriais em seus dados com base na similaridade semântica usando o algoritmo de pesquisa ANN e ENN. Para saber mais, consulte Definir índice de Vector Search.

  1. Copie, cole e execute o seguinte comando no seu terminal para criar um índice do MongoDB Search ou do Vector Search .

    O comando utiliza kubectl exec para executar mongosh no mongodb-tools-pod. Ele se conecta ao método sample_mflix db.<collection>.createSearchIndex() para criar um índice.

    O seguinte comando cria um índice de Pesquisa MongoDB denominado default com mapeamentos dinâmicos na coleção movies. O mapeamento dinâmico indexa automaticamente todos os tipos de campo indexáveis dinamicamente.

    kubectl exec --context "${K8S_CTX}" -n "${MDB_NS}" mongodb-tools-pod -- \ mongosh --quiet "${MDB_CONNECTION_STRING}" \ --eval "use sample_mflix" \ --eval 'db.movies.createSearchIndex("default", { mappings: { dynamic: true } });'
  2. Aguarde a conclusão da criação do índice.

    A criação de índices é um processo assíncrono. Execute o script a seguir para aguardar 60 segundos para que a criação do índice seja concluída.

    # Currently it's not possible to check the status of search indexes, we need to just waitecho "Sleeping to wait for search indexes to be created"sleep 60

    Como alternativa, execute o seguinte comando para recuperar a lista de índices da coleção.

    kubectl exec --context "${K8S_CTX}" -n "${MDB_NS}" mongodb-tools-pod -- \ mongosh --quiet "${MDB_CONNECTION_STRING}" \ --eval "use sample_mflix" \ --eval 'db.runCommand({"listSearchIndexes": "movies"});'
5

Depois que a criação do índice for bem-sucedida, você poderá executar queries do MongoDB Search ou do Vector Search usando o índice. Você também pode combinar o MongoDB Search com a pesquisa vetorial. Para saber mais sobre a execução de queries do MongoDB Search, consulte Definir sua query. Para saber mais sobre queries da pesquisa vetorial, consulte Executar queries ANN e ENN da pesquisa vetorial.

O seguinte script define os critérios de consulta do pipeline de agregação e utiliza o comando kubectl exec para carregar o mongosh para executar a consulta.

A seguinte query pesquisa o campo plot para gráficos de filme que contêm o termo baseball. Exclui filmes nos gêneros comedy e romance .

mdb_script=$(cat <<'EOF'use sample_mflix;db.movies.aggregate([ { $search: { "compound": { "must": [ { "text": { "query": "baseball", "path": "plot" } }], "mustNot": [ { "text": { "query": ["Comedy", "Romance"], "path": "genres" } } ] }, "sort": { "released": -1 } } }, { $limit: 3 }, { $project: { "_id": 0, "title": 1, "plot": 1, "genres": 1, "released": 1 } }]);EOF) kubectl exec --context "${K8S_CTX}" -n "${MDB_NS}" \ mongodb-tools-pod -- /bin/bash -eu -c "$(cat <<EOFecho '${mdb_script}' > /tmp/mdb_script.jsmongosh --quiet "${MDB_CONNECTION_STRING}" < /tmp/mdb_script.jsEOF)"
mdbc-rs [primary] test> switched to db sample_mflixmdbc-rs [primary] sample_mflix> ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... [ { plot: 'A sports agent stages an unconventional recruitment strategy to get talented Indian cricket players to play Major League Baseball.', genres: [ 'Biography', 'Drama', 'Sport' ], title: 'Million Dollar Arm', released: ISODate('2014-05-16T00:00:00.000Z') }, { plot: 'A Taiwanese high school baseball team travels to Japan in 1931 to compete in a national tournament.', genres: [ 'Biography', 'Drama', 'History' ], title: 'Kano', released: ISODate('2014-02-27T00:00:00.000Z') }, { plot: "12-year-old Josh is a mixed race boy and a promising baseball player. He is abused by his mother's boyfriend Byrd, and neglected by his mother Debbie. He forges his own path in life when ...", genres: [ 'Drama' ], title: 'Calloused Hands', released: ISODate('2013-03-03T00:00:00.000Z') }]mdbc-rs [primary] sample_mflix>

Para saber mais sobre como criar índices e executar consultas de pesquisa, consulte:

Avalie esta página