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

Use o MongoDB Search e o Vector Search

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

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

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:

1# The env vars here are all commented out because this snippets module
2# is reusable across different MongoDB deployments and all the necessary variables
3# should be already defined there.
4
5# set it to the context name of the k8s cluster
6#export K8S_CTX="<local cluster context>"
7# the following namespace will be used to deploy mongodb tools pod
8#export MDB_NS="mongodb"
9
10# regular user performing restore and search queries on sample mflix database
11# the user should be able to restore database using mongorestore
12#export MDB_USER_PASSWORD="mdb-user-password-CHANGE-ME"
13
14# name of MongoDB or MongoDBCommunity resource in case it's deployed in the same cluster
15# user only for the connection string in MDB_CONNECTION_STRING env var below
16#export MDB_RESOURCE_NAME="mdbc-rs"
17
18# default connection string if MongoDB database is deployed using the operator
19#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}"
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.

1kubectl apply -n "${MDB_NS}" --context "${K8S_CTX}" -f - <<EOF
2apiVersion: v1
3kind: Pod
4metadata:
5 name: mongodb-tools-pod
6 labels:
7 app: mongodb-tools
8spec:
9 containers:
10 - name: mongodb-tools
11 image: mongodb/mongodb-community-server:${MDB_VERSION%-ent}-ubi8
12 command: ["/bin/bash", "-c"]
13 args: ["sleep infinity"]
14 restartPolicy: Never
15EOF
16
17echo "Waiting for the mongodb-tools to be ready..."
18kubectl --context "${K8S_CTX}" -n "${MDB_NS}" wait \
19 --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.

1kubectl exec -n "${MDB_NS}" --context "${K8S_CTX}" \
2 mongodb-tools-pod -- /bin/bash -eu -c "$(cat <<EOF
3echo "Downloading sample database archive..."
4curl https://atlas-education.s3.amazonaws.com/sample_mflix.archive \
5 -o /tmp/sample_mflix.archive
6echo "Restoring sample database"
7mongorestore \
8 --archive=/tmp/sample_mflix.archive \
9 --verbose=1 \
10 --drop \
11 --nsInclude 'sample_mflix.*' \
12 --uri="${MDB_CONNECTION_STRING}"
13EOF
14)"
4

You can create a MongoDB Search or a Vector Search index. You must create a MongoDB Search index to run $search and $searchMeta queries and Vector Search index to run $vectorSearch queries.

  • 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.

  • Vector Search provides simple index definition that supports querying vector embeddings in your data based on semantic similarity by using ANN and ENN search algorithm. To learn more, see Define Vector Search Index.

  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.

    1kubectl exec --context "${K8S_CTX}" -n "${MDB_NS}" mongodb-tools-pod -- \
    2 mongosh --quiet \
    3 "${MDB_CONNECTION_STRING}" \
    4 --eval "use sample_mflix" \
    5 --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.

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

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

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

After the index creation is successful, you can run MongoDB Search or Vector Search queries using the index. You can also combine MongoDB Search with Vector Search. To learn more about running MongoDB Search queries, see Define Your Query. To learn more about Vector Search queries, see Run Vector Search ANN and ENN Queries.

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 .

1mdb_script=$(cat <<'EOF'
2use sample_mflix;
3db.movies.aggregate([
4 {
5 $search: {
6 "compound": {
7 "must": [ {
8 "text": {
9 "query": "baseball",
10 "path": "plot"
11 }
12 }],
13 "mustNot": [ {
14 "text": {
15 "query": ["Comedy", "Romance"],
16 "path": "genres"
17 }
18 } ]
19 },
20 "sort": {
21 "released": -1
22 }
23 }
24 },
25 {
26 $limit: 3
27 },
28 {
29 $project: {
30 "_id": 0,
31 "title": 1,
32 "plot": 1,
33 "genres": 1,
34 "released": 1
35 }
36 }
37]);
38EOF
39)
40
41kubectl exec --context "${K8S_CTX}" -n "${MDB_NS}" \
42 mongodb-tools-pod -- /bin/bash -eu -c "$(cat <<EOF
43echo '${mdb_script}' > /tmp/mdb_script.js
44mongosh --quiet "${MDB_CONNECTION_STRING}" < /tmp/mdb_script.js
45EOF
46)"
1mdbc-rs [primary] test> switched to db sample_mflix
2mdbc-rs [primary] sample_mflix> ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... [
3 {
4 plot: 'A sports agent stages an unconventional recruitment strategy to get talented Indian cricket players to play Major League Baseball.',
5 genres: [ 'Biography', 'Drama', 'Sport' ],
6 title: 'Million Dollar Arm',
7 released: ISODate('2014-05-16T00:00:00.000Z')
8 },
9 {
10 plot: 'A Taiwanese high school baseball team travels to Japan in 1931 to compete in a national tournament.',
11 genres: [ 'Biography', 'Drama', 'History' ],
12 title: 'Kano',
13 released: ISODate('2014-02-27T00:00:00.000Z')
14 },
15 {
16 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 ...",
17 genres: [ 'Drama' ],
18 title: 'Calloused Hands',
19 released: ISODate('2013-03-03T00:00:00.000Z')
20 }
21]
22mdbc-rs [primary] sample_mflix>

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

Avalie esta página