Etapa 1: Crie um índice Atlas Search
Nesta página
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.
IU do Atlas
No Atlas, acesse a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Acesse a página do Atlas Search do seu cluster.
Você pode acessar a página do Atlas Search pela barra lateral, pelo Data Explorer ou pela página de detalhes do cluster.
Na barra lateral, clique em Atlas Search sob o título Services.
No menu suspenso Select data source, selecione seu cluster e clique em Go to Atlas Search.
A página Atlas Search é exibida.
Clique no botão Browse Collections para o seu cluster.
Expanda o banco de dados e selecione a coleção.
Clique na guia Search Indexes da coleção.
A página Atlas Search é exibida.
Clique no nome do seu cluster.
Clique na aba Atlas Search.
A página Atlas Search é exibida.
Selecione um Atlas Search Configuration Method Nexte clique .
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.
Insira o Index Name e defina o Database and Collection.
No campo Index Name, digite
default
.Se você nomear seu índice
default
, não precisará especificar um parâmetroindex
no estágio do pipeline $search . Se você der um nome personalizado ao seu índice, deverá especificar este nome no parâmetroindex
.Na seção Database and Collection, localize o banco de dados
sample_mflix
e selecione a coleçãomovies
.
Especifique uma definição de índice.
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.
Editor Visual
Clique em Next.
Revise a definição de índice
"default"
para a collectionmovies
.
Editor JSON
Clique em Next.
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
.Clique em Next.
API de pesquisa do Atlas
Copie e cole a solicitação de cURL de amostra no editor de texto de sua preferência.
A seguinte definição de índice indexa dinamicamente os campos de tipos compatíveis na collection movies
.
1 PUBLIC_KEY=MY_PUBLIC_KEY # replace replace with your public key 2 PRIVATE_KEY=MY_PRIVATE_KEY # replace with your private key 3 GROUP_ID=YOUR_GROUP_ID # replace with your project ID 4 CLUSTER_NAME=YOUR_CLUSTER_NAME # replace with your cluster's name 5 6 curl --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 }'
Substitua as variáveis em sua solicitação de cURL de amostra.
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. |
Atlas CLI
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.
Cria e salva a definição de índice JSON num arquivo.
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 }
Copie e modifique a solicitação de amostra do Atlas CLI.
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. |
Execute a solicitação do Atlas CLI modificada no seu terminal para criar o índice do Atlas Search.
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" }
MongoDB Compass
Você pode criar um índice do Atlas Search em M10
e clusters superiores executando MongoDB 7.0 ou posterior no MongoDB Compass.
Conecte-se ao seu cluster do Atlas no MongoDB Compass.
Abra o Compass e conecte-se ao seu cluster do Atlas. Para obter instruções detalhadas sobre a conexão, consulte Conectar via Compass.
Crie o índice.
Clique na aba Indexes e selecione Search Indexes.
Clique em Create Index para abrir a caixa de diálogo de criação de índice.
Especifique um nome para o índice e, em seguida, a definição do índice de pesquisa.
Nome do Índicedefault
Definição de Índice{ mappings: { dynamic: true } } Clique em Create Search Index.
Programaticamente
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.
Pré-requisitos
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:
DriverVersãoDriver .NET/C#2.21 ou posteriorControlador Node.js6.1 ou posterior
➤ Use o menu suspenso Selecione a linguagem para definir a linguagem do exemplo nesta seção.
Procedimento
Conecte-se ao seu cluster em mongosh
.
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
.
Use o sample_mflix
banco de banco de dados .
Execute o seguinte comando no prompt mongosh
:
use sample_mflix
Configure e inicialize o projeto .NET/C# para a query.
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 Adicione o driver .NET/C# ao seu projeto como uma dependência.
dotnet add package MongoDB.Driver
Copie e cole Program.cs
a consulta no arquivo .
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);
Substitua o <connection-string>
na query e salve o arquivo.
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.
Copie e cole o seguinte código no create-index.js
arquivo .
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);
Substitua o <connection-string>
na query e salve o arquivo.
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.
Próximos passos
Agora que você criou o índice, prossiga para Passo 2: Executar queries no Atlas Search.