Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ /

Etapa 1: Crie um índice Atlas Search

Nesta página

  • IU do Atlas
  • API de pesquisa do Atlas
  • Atlas CLI
  • MongoDB Compass
  • Programaticamente
  • Próximos passos

Importante

Recurso Indisponível em Instâncias sem Servidor

Neste momento, as instâncias sem servidor não permitem essa funcionalidade. Para saber mais, consulte Limitações de instâncias sem servidor.

Um índice do Atlas Search é uma estrutura de dados que categoriza os dados em um formato facilmente pesquisável. É um mapeamento entre os termos e os documentos que contêm esses termos. Os índices do Atlas Search permitem a recuperação mais rápida de documentos usando determinados identificadores. Você deve configurar um índice do Atlas Search para fazer query em dados em seu cluster Atlas usando o Atlas Search.

Você pode criar um índice de Pesquisa do Atlas em um único campo ou em múltiplos campos. Recomendamos que você indexe os campos que usa regularmente para classificar ou filtrar seus dados para recuperar rapidamente os documentos que contêm os dados relevantes em tempo de query.

Você pode criar um índice do Atlas Search usando a Atlas UI do Atlas , API do Atlas Search, Atlas CLI do Atlas , MongoDB Compass ou um driver do MongoDB compatível na linguagem de sua preferência.

Este tutorial utiliza a collection sample_mflix.movies a partir de amostras de conjuntos de dados.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Se ainda não estiver exibido, clique em Clusters na barra lateral.

    A página Clusters é exibida.

2

Você pode acessar a página do Atlas Search pela barra lateral, pelo Data Explorer ou pela página de detalhes do cluster.

  1. Na barra lateral, clique em Atlas Search sob o título Services.

  2. No menu suspenso Select data source, selecione seu cluster e clique em Go to Atlas Search.

    A página Atlas Search é exibida.

  1. Clique no botão Browse Collections para o seu cluster.

  2. Expanda o banco de dados e selecione a coleção.

  3. Clique na guia Search Indexes da coleção.

    A página Atlas Search é exibida.

  1. Clique no nome do seu cluster.

  2. Clique na aba Atlas Search.

    A página Atlas Search é exibida.

3
4
  • Para uma experiência abada, selecione a Pesquisa Atlas Visual Editor.

  • Para editar a definição de índice bruto, selecione a Pesquisa Atlas JSON Editor.

5
  1. No campo Index Name, digite default.

    Se você nomear seu índice default, não precisará especificar um parâmetro index no estágio do pipeline $search . Se você der um nome personalizado ao seu índice, deverá especificar este nome no parâmetro index.

  2. Na seção Database and Collection, localize o banco de dados sample_mflix e selecione a coleção movies.

6

Você pode criar um índice de pesquisa do Atlas que utiliza mapeamentos dinâmicos ou mapeamentos estáticos. Para saber mais sobre mapeamentos dinâmicos e estáticos, consulte Mapeamentos estáticos e dinâmicos.

A seguinte definição de índice indexa dinamicamente os campos de tipos suportados na collection movies . Você pode usar o Visual Editor do Atlas Search ou o JSON Editor do Atlas Search na interface de usuário do Atlas para criar o índice.

  1. Clique em Next.

  2. Revise a definição de índice "default" para a collection movies.

  1. Clique em Next.

  2. Revise a definição do índice.

    A definição do seu índice deve ser semelhante a esta:

    {
    "mappings": {
    "dynamic": true
    }
    }

    A definição de índice acima indexa dinamicamente os campos de tipos suportados em cada documento na collection movies.

  3. Clique em Next.

7
8
9

Uma janela modal é exibida para que você saiba que seu índice está construindo. Clique no botão Close.

10

O índice deve levar cerca de um minuto para ser criado. Enquanto está se formando, a coluna Status mostra Build in Progress. Quando terminar de se formar, a coluna Status mostrará Active.

1

A seguinte definição de índice indexa dinamicamente os campos de tipos compatíveis na collection movies.

1PUBLIC_KEY=MY_PUBLIC_KEY # replace replace with your public key
2PRIVATE_KEY=MY_PRIVATE_KEY # replace with your private key
3GROUP_ID=YOUR_GROUP_ID # replace with your project ID
4CLUSTER_NAME=YOUR_CLUSTER_NAME # replace with your cluster's name
5
6curl --user "$PUBLIC_KEY:$PRIVATE_KEY" --digest \
7 --header "Content-Type: application/json" \
8 --include \
9 --request POST "https://cloud.mongodb.com/api/atlas/v2/groups/$GROUP_ID/clusters/$CLUSTER_NAME/search/indexes?pretty=true" \
10 --data '{
11 "collectionName": "movies",
12 "database": "sample_mflix",
13 "definition":{
14 "mappings": {
15 "dynamic": true
16 }
17 },
18 "name": "default"
19 }'
2

As solicitações cURL de amostra usam essas variáveis. Substitua essas variáveis com os valores desejados antes de executar o comando cURL para criar um Índice do Atlas Search.

Nome
Tipo
Descrição
PUBLIC_KEY
string
Sua chave de API pública para suas credenciais deAPI .
PRIVATE_KEY
string
Sua chave de API privada para suas credenciais de API.
GROUP_ID
string
Cadeia de caracteres hexadecimais exclusiva de 24 caracteres que identifica o projeto que contém o cluster que contém a coleta para o qual você deseja criar um índice do Atlas Search.
CLUSTER_NAME
string

Rótulo legível por humanos que identifica o cluster que contém a coleta para a qual você deseja criar um índice do Atlas Search.

Use a API para obter o CLUSTER_NAME. Para cada cluster, o Atlas retorna o CLUSTER_NAME no campo nome.

3
1{
2 "collectionName" : "movies",
3 "database" : "sample_mflix",
4 "indexID" : "60bfd25f59fc81594354eed3",
5 "mappings" : {
6 "dynamic" : true
7 },
8 "name" : "default",
9 "status" : "IN_PROGRESS"
10}

Observação

Você pode utilizar também o Atlas Search com implantações locais do Atlas que você cria com o Atlas CLI. Para saber mais, consulte Como criar uma implantação local do Atlas.

1

Copie a seguinte definição de índice de exemplo e cole o índice JSON exemplo em um novo arquivo e salve o arquivo:

A seguinte definição de índice indexa dinamicamente os campos de tipos compatíveis na collection movies.

1{
2 "name": "INDEX_NAME",
3 "clusterName": "CLUSTER_NAME",
4 "collectionName": "movies",
5 "database": "sample_mflix",
6 "mappings": {
7 "dynamic": true
8 }
9}
2

Cole a seguinte solicitação de amostra do Atlas CLI em seu editor de texto favorito e substitua as variáveis.

atlas clusters search index create \
--clusterName CLUSTER_NAME \
--file FILE_PATH \
--projectId PROJECT_ID
--profile PROFILE_NAME

As solicitações de amostra do Atlas CLI utilizam estas variáveis. Substitua estas variáveis por seus valores desejados antes de executar o comando para criar um índice de Pesquisa do Atlas.

Nome
Tipo
Descrição
PROJECT_ID
string
Cadeia exclusiva de caracteres 24-hexadecimal que identifica o projeto que contém o agrupamento. O agrupamento contém a coleção para a qual você deseja criar um índice de Pesquisa Atlas.
CLUSTER_NAME
string
Cadeia de caracteres exclusiva de 24 caracteres hexadecimais que identifica cluster. O agrupamento contém a coleção para a qual você deseja criar um índice de Pesquisa do Atlas.
FILE_PATH
string
Caminho para o arquivo de índice JSON que você criou e salvou nas etapas anteriores, incluindo a extensão de arquivo .json.
PROFILE_NAME
string
Opcional. Nome do perfil que define as chaves pública e privada para o projeto. Para obter mais informações, consulte Salvar configurações de conexão. Se você remover o sinalizador --profile, o Atlas CLI usará o perfil padrão.
3

Execute a solicitação. Você recebe esta resposta quando o Atlas Search começa a criar o índice:

{
"collectionName": "movies",
"database": "sample_mflix",
"indexID": <index-id>,
"mappings": {
"dynamic": true
},
"name": <index-name>,
"status": "IN_PROGRESS"
}

Você pode criar um índice do Atlas Search em M10 e clusters superiores executando MongoDB 7.0 ou posterior no MongoDB Compass.

1

Abra o Compass e conecte-se ao seu cluster do Atlas. Para obter instruções detalhadas sobre a conexão, consulte Conectar via Compass.

2

Na tela Database, clique no banco de dados sample_mflix e, em seguida, clique na coleção movies.

3
  1. Clique na aba Indexes e selecione Search Indexes.

  2. Clique em Create Index para abrir a caixa de diálogo de criação de índice.

  3. Especifique um nome para o índice e, em seguida, a definição do índice de pesquisa.

    Nome do Índice

    default

    Definição de Índice
    {
    mappings: { dynamic: true }
    }
  4. Clique em Create Search Index.

Você pode criar um índice do Atlas Search de forma programática utilizando mongosh ou um driver do MongoDB compatível na linguagem de sua preferência.

Observação

Você pode usar o comando mongosh ou métodos assistentes do driver para criar índices do Atlas Search em todas as camadas de cluster do Atlas.

  • As seguintes versões para cada driver:

    Driver
    Versão
    Driver .NET/C#
    2.21 ou posterior
    Controlador Node.js
    6.1 ou posterior

➤ Use o menu suspenso Selecione a linguagem para definir a linguagem do exemplo nesta seção.


1

Abra o mongosh em uma janela do terminal e conecte ao seu cluster. Para obter instruções detalhadas sobre a conexão, consulte Conectar via mongosh.

2

Execute o seguinte comando no prompt mongosh:

use sample_mflix
3
db.movies.createSearchIndex(
"default",
{ mappings: { dynamic: true } }
)
default
1
  1. Crie um novo diretório chamado create-index-tutorial e inicialize seu projeto com o comando dotnet new.

    mkdir create-index-tutorial
    cd create-index-tutorial
    dotnet new console
  2. Adicione o driver .NET/C# ao seu projeto como uma dependência.

    dotnet add package MongoDB.Driver
2
Program.cs
using MongoDB.Bson;
using MongoDB.Driver;
// connect to your Atlas deployment
var uri = "<connection-string>";
var client = new MongoClient(uri);
var db = client.GetDatabase("sample_mflix");
var collection = db.GetCollection<BsonDocument>("movies");
// define your Atlas Search index
var index = new CreateSearchIndexModel(
"default", new BsonDocument
{
{ "mappings", new BsonDocument
{
{ "dynamic", true }
}
}
});
var result = collection.SearchIndexes.CreateOne(index);
Console.WriteLine(result);
3

Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.

4
dotnet run csharp-create-index.csproj
default
1
2
create-index.js
const { MongoClient } = require("mongodb");
// connect to your Atlas deployment
const uri =
"<connection-string>";
const client = new MongoClient(uri);
async function run() {
try {
// set namespace
const database = client.db("sample_mflix");
const collection = database.collection("movies");
// define your Atlas Search index
const index = {
name: "default",
definition: {
/* search index definition fields */
"mappings": {
"dynamic": true
}
}
}
// run the helper method
const result = await collection.createSearchIndex(index);
console.log(result);
} finally {
await client.close();
}
}
run().catch(console.dir);
3

Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.

4

Para criar o índice, execute o seguinte comando:

node create-index.js
default

Agora que você criou o índice, prossiga para Passo 2: Executar queries no Atlas Search.