Gerenciar índices do Atlas Search
Nesta página
- Considerações
- Acesso necessário
- criar um índice do atlas search
- Ver índices de Atlas Search
- Retomar ou excluir um rascunho de índice do Atlas Search
- Editar um índice de pesquisa do Atlas
- Atualizar um índice existente
- Excluir um índice do Atlas Search
- Estimar o tamanho de seu índice
- Saiba mais
- Continuar aprendendo
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.
Considerações
Consistência e reconstrução do índice
Se você fizer alterações na collection para a qual definiu os índices da Atlas Search , os dados mais recentes podem não estar disponíveis imediatamente para query. No entanto, o mongot
monitora os fluxos de alteração, o que permite atualizar as cópias armazenadas dos dados, e os índices do Atlas Search são eventualmente consistentes.
Quando você altera uma definição de índice, o mongot
reconstrói automaticamente o novo índice em segundo plano, enquanto continua servindo consultas com o índice antigo para garantir que não haja tempo de inatividade. Isso acontece quando você distribui os processos mongot
e mongod
no mesmo nó e quando distribui os processos em nós diferentes. O Atlas também reconstrói índices quando você habilita ou desabilita a Encryption at Rest.
Se você alterar a topologia de sua implantação de pesquisa, o Atlas Search provisiona e cria índices em todos os novos nós antes de remover os nós antigos, para garantir que não haja tempo de inatividade da consulta.
Para implementações em que os processos mongod
e mongot
são executados no mesmo nó, se o Atlas Search introduzir alterações que exijam a reconstrução de seus índices (como alguns recursos do Atlas Search que exigem uma atualização de índice), o Atlas implementa automaticamente nós gratuitamente para criar os índices, enquanto os nós antigos continuam atendendo suas queries.
Aviso
Se você fragmentar uma collection que já tenha um índice do Atlas Search, poderá passar por um breve período de inatividade de query quando a coleção começar a aparecer em um fragmento. Além disso, se você adicionar um fragmento a uma coleção já fragmentada que contenha um índice do Atlas Search, suas pesquisas nessa coleção falharão até que o processo de initial sync seja concluído nos fragmentos adicionados. Para saber mais, consulte processo de sincronização inicial.
Nós de pesquisa dedicados
Você pode implantar nós de pesquisa dedicados para melhorar o desempenho, a escalabilidade e o isolamento de recursos. Se você implantou nós de pesquisa, considere o seguinte:
Adicionar e ajustar fragmentos aciona uma reconstrução do índice de Atlas Search. Durante a reconstrução do índice, o índice talvez não terrá os dados mais atuais. Portanto, queries em relação aos dados nesses fragmentos podem falhar ou retornar resultados incorretos.
Se você refragmentar uma collection com índices do Atlas Search, os índices do Atlas Search na collection ficarão indisponíveis quando a operação de refragmentação estiver completa. Você deve excluir e criar novos índices do Atlas Search assim que a operação for concluída.
Se você emitir o comando para alterar o fragmento primário de um banco de dados, os índices do Atlas Search para qualquer coleção não fragmentada nesse banco de dados ficarão indisponíveis após a conclusão da operação. Você deve excluir e criar novos índices do Atlas Search assim que a operação
movePrimary
for concluída.
Para saber mais sobre a arquitetura do nó do Atlas Search, consulte Opções de sistema do Atlas Search.
Acesso necessário
É possível atribuir roles de usuário do projeto ou roles de usuário do banco de dados para fornecer acesso aos privilégios de usuário necessários para executar as ações de índice do Atlas Search descritas neste guia.
A tabela abaixo mostra os modos de acesso que as seguintes Roles do Projeto suportam para as ações do Atlas Search especificadas:
Função | Ação do Atlas Search | IU do Atlas | Atlas CLI | Atlas API [1] |
---|---|---|---|---|
| Para visualizar índices e analisadores do Atlas Search . | ✓ | ✓ | |
| Para criar, visualizar, atualizar e excluir índices e analisadores do Atlas Search . | ✓ | ✓ | ✓ |
Para criar, visualizar, atualizar e excluir índices do Atlas Search. | ✓ | ✓ | ✓ |
[1] | Cada função concede permissão para chamar um subconjunto ou o conjunto completo de pontos de extremidade da API Atlas Search na API de Administração do Atlas. Consulte a coluna Ação do Atlas Search para a descrição dos pontos de extremidade da API aos quais cada função concede acesso. |
As seguintes roles do Banco de Dados MongoDB suportam as Ações de Privilégio do Índice de Atlas Searchfornecidas:
Descrição da Ação | Roles do banco de dados | Ação de privilégio do índice do Atlas Search |
---|---|---|
Ver índice do Atlas Search | ||
Criar índice do Atlas Search | ||
Editar índice do Atlas Search | ||
Excluir índice do Atlas Search |
Para saber mais, consulte Funções embutidas ou Privilégios específicos.
criar um índice do atlas search
O tutorial a seguir descreve como criar um índice do Atlas Search usando o método selecionado.
Para ver um tutorial de exemplo que cria um índice para a coleção sample_mflix.movies
, consulte Início Rápido do Atlas Search. Para obter uma visão geral conceitual de como definir um índice para atender às suas preferências de query, consulte Definir seu índice.
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.
➤ Use o menu suspenso Selecione seu idioma para definir o idioma do procedimento nesta seção.
Para criar um índice do Atlas Search usando a API do Atlas Search :
Envie uma solicitação POST
.
Envie uma solicitação POST
para o endpointsearch/indexes
.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes" \ --data ' { "collectionName": "<collection-name>", "database": "<database-name>", "name": "<index-name>", "type": "search", "definition": { "analyzer": "<analyzer-name>", "searchAnalyzer": "<analyzer-name>", "mappings": { "dynamic": <boolean>, "fields": { <field-definition> } }, "numPartitions": <integer>, "analyzers": [ { <custom-analyzer-definition> } ], "storedSource": <boolean> | { <stored-source-definition> }, "synonyms": [ { <synonym-mapping-definition> } ] } }'
Para saber mais sobre a sintaxe e os parâmetros deste ponto de extremidade, consulte Criar um.
Para criar um índice de Atlas Search utilizando o Atlas CLI:
Implementação em cloud
Para criar um índice de pesquisa para um agrupamento utilizando o Atlas CLI, execute o seguinte comando:
atlas clusters search indexes create [indexName] [options]
Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI para criação de índices de pesquisa dos clusters do Atlas.
Sistemas locais
Para criar um índice de pesquisa para o sistema especificado utilizando o Atlas CLI, execute o seguinte comando:
atlas deployments search indexes create [indexName] [options]
Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação da CLI do Atlas para implantações do Atlas que os índices de pesquisa criam.
Para saber mais sobre como usar a Atlas CLI para criar um sistema local do Atlas, consulte Criar um sistema local do Atlas.
Exemplo
O exemplo a seguir mostra como usar o comando atlas clusters
ou atlas deployments
para criar um índice do Atlas Search no modo não interativo com um arquivo de configuração.
Para criar um índice do Atlas Search usando a interface do usuário do Atlas :
No Atlas, VáGo para a Clusters página do seu projeto.
Aviso
Melhorias na navegação em andamento
No momento, estamos lançando uma experiência de navegação nova e aprimorada. Se as etapas a seguir não corresponderem à sua visualização na UI do Atlas, consulte a documentação de visualização.
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.
Inicie a configuração do seu índice.
Faça as seguintes seleções na página e clique em Next.
Search Type | Selecione o tipo de índice do Atlas Search . |
Index Name and Data Source | Especifique as seguintes informações:
|
Configuration Method | For a guided experience, select Visual Editor. To edit the raw index definition, select JSON Editor. |
Observação
Seu índice do Atlas Search tem o nome default
por padrão. Se você manter esse nome, seu índice será o índice de pesquisa padrão para qualquer query do Atlas Search que não especifique uma index
opção diferente em seus operadores. Se você estiver criando vários índices, recomendamos que mantenha uma convenção de nomenclatura descritiva consistente em seus índices.
Revise as configurações de índice padrão do Atlas Search na seção Index Configurations.
A definição de índice padrão é um mapeamento dinâmico dos campos nos documentos e funcionará com qualquer coleção.
Para personalizar sua definição de índice, revise as seguintes configurações de índice:
Campo do Editor Visual | Descrição | necessidade |
---|---|---|
Index Analyzer | Especifique o analisador a ser usado para indexar os dados da coleção Por padrão, o Atlas Search utiliza o analisador padrão ( Corresponde à configuração JSON do | Opcional |
Search Analyzer | Especifica o analisador a ser aplicado ao texto de consulta antes de pesquisar o texto. Se você omitir este campo, o índice herda um analisador por padrão na seguinte ordem:
Corresponde à configuração JSON do | Opcional |
Dynamic Mapping | Especifique o mapeamento dinâmico ou estático dos campos. Por padrão, o mapeamento dinâmico está habilitado. Para desativar o mapeamento dinâmico, defina Para saber mais sobre mapeamentos dinâmicos e estáticos, consulte Definir mapeamentos de campo. Corresponde à configuração JSON do | Obrigatório |
Nome do campo | Descrição | necessidade |
---|---|---|
| Especifique o analisador a ser usado para indexar os dados da coleção Por padrão, o Atlas Search utiliza o analisador padrão ( | Opcional |
| Especifica o analisador a ser aplicado ao texto de consulta antes de pesquisar o texto. Se você omitir este campo, o índice herda um analisador por padrão na seguinte ordem: | Opcional |
| Especifique o mapeamento dinâmico ou estático dos campos. Para desativar o mapeamento dinâmico, defina | Obrigatório |
Para saber mais sobre essas configurações de definição de índice, consulte Referência de índice.
Se você estiver satisfeito com a configuração padrão, pule esta etapa. Se você deseja refinar o índice do Atlas Search, vá para a próxima etapa.
Refine seu índice do Atlas Search para definir as configurações adicionais.
Clique em Refine Your Index para fazer alterações em qualquer uma das seguintes configurações.
Nome do campoDescriçãonecessidadeField Mappings
Obrigatório se Dynamic Mapping na seção Index Configurations estiver desabilitado.
Especifique os campos no índice:
Clique em Add Field Mapping para abrir a janela Add Field Mapping.
Especifique as seguintes informações sobre o campo:
Field name - Nome do campo a ser indexado.
Data Type - Tipo de dados do campo. Para saber mais sobre os tipos de dados aceitos e suas opções, consulte Tipos de dados.
(Opcional) Especifique propriedades adicionais.
Uma tabela de opções de configuração adicionais aparece na janela Add Field Mapping. Estas propriedades dependem do tipo de dados que você selecionou na última etapa.
Para saber mais sobre os tipos de dados aceitos e suas opções, consulte Tipos de dados.
(Opcional) Adicione vários campo.
Clique em Add Multi Field para configurar um analisador de campo alternativo com o qual indexar o campo. Para saber mais, consulte Multianalisador.
Clique em Add para adicionar o campo.
Você pode clicar no ícone de reticências (...) do campo , na coluna Actions, para fazer o seguinte:
Clique em Edit para modificar a configuração.
Clique em Add Data Type para configurar tipos de dados adicionais para o campo.
Clique em Delete para remover o campo do índice.
Para saber mais sobre como definir mapeamentos de campo, consulte Referência de índice.
Corresponde à configuração JSON do
mappings.fields
.Condicional
Stored Source Fields
Especifique os campos para armazenar no Atlas Search para pesquisas de tempo de query. Você pode armazenar campos de todos os tipos de dados suportados na Atlas Search.
Para saber mais sobre como armazenar campos, consulte Definir campos de origem armazenados em seu índice do Atlas Search.
Corresponde à configuração JSON do
storedSource
.Opcional
Synonyms Mappings
Especifique mapeamentos de sinônimos para usar em seu índice.
Você pode utilizar um mapeamento de sinônimo para fazer uma query somente em campos analisados com o mesmo analisador.
Para saber mais sobre mapeamentos de sinônimos, consulte Definir mapeamentos de sinônimos no índice do Atlas Search.
Corresponde à configuração JSON do
synonyms
.Opcional.
Index Partitions
O número de partições a serem usadas se os objetos de campo excederem 2.1 bilhões.
Corresponde à configuração JSON do
numPartitions
.Opcional.
Clique em Save Changes.
Adicione qualquer uma das seguintes configurações ao seu índice:
Nome do campoDescriçãonecessidademappings.fields
Obrigatório se
mappings.dynamic
forfalse
.Especifique os campos que você deseja indexar. Para saber mais, consulte Definir mapeamentos de campo.
Condicional
storedSource
Especifique os campos para armazenar no Atlas Search para pesquisas de tempo de query. Você pode armazenar campos de todos os tipos de dados suportados na Atlas Search.
Para saber mais sobre como armazenar campos, consulte Definir campos de origem armazenados em seu índice do Atlas Search.
Opcional
synonyms
Especifique mapeamentos de sinônimos para usar em seu índice.
Você pode utilizar um mapeamento de sinônimo para fazer uma query somente em campos analisados com o mesmo analisador.
Para saber mais sobre mapeamentos de sinônimos, consulte Definir mapeamentos de sinônimos no índice do Atlas Search.
Opcional
numPartitions
O número de partições a serem usadas se os objetos de campo excederem 2.1 bilhões.
Opcional.
Para saber mais sobre essas configurações de definição de índice, consulte Referência de índice.
Clique em Next.
Opcional. Se você usar o Visual Editor, poderá salvar ou excluir seu rascunho de definição de índice.
Observação
Não é possível salvar a definição de índice padrão como rascunho. Se você utilizar o Visual Editor e sua definição de índice contiver mapeamentos estáticos, você poderá salvar uma definição de índice como um rascunho.
Clique em Cancel.
Clique em Save Draft ou Delete Draft.
Importante
Você não pode criar um novo índice quando tiver um rascunho de índice pendente.
Para saber mais, consulte Retomar ou excluir um rascunho de índice do Atlas Search.
Verifique o status.
O índice recém-criado aparece na aba Atlas Search. Enquanto o índice está construindo, o campo Status lê Build in Progress. Quando o índice terminar de construir, o campo Status lê Active.
Observação
Collections maiores demoram mais tempo para indexar. Você receberá uma notificação por e-mail quando seu índice terminar a criação.
Para criar um índice do Atlas Search usando mongosh
:
Conecte-se usando mongosh
Para saber mais, consulte Conectar via mongosh
.
Crie um índice Atlas Search .
Use o método db.collection.createSearchIndex()
.
O comando tem a seguinte sintaxe. Se você omitir o nome do índice, o Atlas Search nomeará o índice default
. Para saber mais, consulte Referência de índice.
db.<collection>.createSearchIndex( "<index-name>", { /* search index definition */ } )
Exemplo
Para criar um índice denominado example-index
que indexe dinamicamente os campos na coleção movies
, execute o seguinte comando:
db.movies.createSearchIndex( "example-index", { mappings: { dynamic: true } } )
example-index
Para criar um índice do Atlas Search usando o MongoDB Compass:
Conecte-se ao seu Atlas cluster via MongoDB Compass.
Abra o Compass e conecte-se ao Atlas cluster. Para obter instruções detalhadas, consulte Conectar via Compass.
Crie o índice Atlas Search .
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.
Seu índice do Atlas Search tem o nome
default
por padrão. Se você manter esse nome, seu índice será o índice de pesquisa padrão para qualquer query do Atlas Search que não especifique umaindex
opção diferente em seus operadores. Se você estiver criando vários índices, recomendamos que mantenha uma convenção de nomenclatura descritiva consistente em seus índices.Especifique a definição de índice do JSON Atlas Search.
1 { 2 "analyzer": "<analyzer-for-index>", 3 "searchAnalyzer": "<analyzer-for-query>", 4 "mappings": { 5 "dynamic": <boolean>, 6 "fields": { <field-definition> } 7 }, 8 "numPartitions": <integer>, 9 "analyzers": [ <custom-analyzer> ], 10 "storedSource": <boolean> | { 11 <stored-source-definition> 12 }, 13 "synonyms": [ 14 { 15 <synonym-mapping-definition> 16 } 17 ] 18 } 19 Clique em Create Search Index.
Para usar o driver C para criar um índice do Atlas Search, defina o índice de pesquisa em seu aplicativo e chame o método mongoc_collection_command_simple()
.
Observação
Os métodos de gerenciamento do Atlas Search Index são executados de forma assíncrona. Os métodos do driver podem ser gerados antes de confirmar que foram executados corretamente. Para determinar o status atual dos índices de pesquisa, execute uma operação de agregação com o estágio de pipeline $listSearchIndexes
.
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicação de amostra especifica o comando createSearchIndexes
para definir um índice de pesquisa. Em seguida, o aplicação converte as informações de comando e índice de pesquisa em BSON e passa essas informações para o método mongoc_collection_command_simple()
para criar o índice de pesquisa. Para saber mais, consulte Referência de índice.
int main (void) { mongoc_client_t *client = NULL; mongoc_collection_t *collection = NULL; mongoc_database_t *database = NULL; bson_error_t error; bson_t cmd = BSON_INITIALIZER; bool ok = true; mongoc_init(); // Connect to your Atlas deployment client = mongoc_client_new("<connectionString>"); if (!client) { fprintf(stderr, "Failed to create a MongoDB client.\n"); ok = false; goto cleanup; } // Access your database and collection database = mongoc_client_get_database(client, "<databaseName>"); collection = mongoc_database_get_collection(database, "<collectionName>"); // Specify the command and the new index const char *cmd_str = BSON_STR({ "createSearchIndexes" : "<collectionName>", "indexes" : [ { "name" : "<indexName>", "definition" : { "analyzer": "<indexAnalyzer>", "searchAnalyzer": "<queryAnalyzer>", "mappings": { "dynamic": <boolean>, "fields": { <fieldDefinition> } }, "numPartitions": <integer>, "analyzers": [ <customAnalyzer> ], "storedSource": <boolean> | { <storedSourceDefinition> }, "synonyms": [ { <synonymMappingDefinition> } ] } } ] }); // Convert your command to BSON if (!bson_init_from_json(&cmd, cmd_str, -1, &error)) { fprintf(stderr, "Failed to parse command: %s\n", error.message); ok = false; goto cleanup; } // Create the Atlas search index by running the command if (!mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { fprintf(stderr, "Failed to run createSearchIndexes: %s\n", error.message); ok = false; goto cleanup; } printf ("Index created!\n"); cleanup: mongoc_collection_destroy (collection); mongoc_client_destroy (client); mongoc_database_destroy (database); bson_destroy (&cmd); mongoc_cleanup (); return ok ? EXIT_SUCCESS : EXIT_FAILURE; }
O seguinte aplicação de amostra utiliza o comando createSearchIndexes
para definir múltiplos índices de pesquisa. Em seguida, o aplicação converte as informações de comando e índice de pesquisa em BSON e passa essas informações para o método mongoc_collection_command_simple()
para criar o índice de pesquisa. Para saber mais, consulte Referência de índice.
int main (void) { mongoc_client_t *client = NULL; mongoc_collection_t *collection = NULL; mongoc_database_t *database = NULL; bson_error_t error; bson_t cmd = BSON_INITIALIZER; bool ok = true; mongoc_init(); // Connect to your Atlas deployment client = mongoc_client_new("<connectionString>"); if (!client) { fprintf(stderr, "Failed to create a MongoDB client.\n"); ok = false; goto cleanup; } // Access your database and collection database = mongoc_client_get_database(client, "<databaseName>"); collection = mongoc_database_get_collection(database, "<collectionName>"); // Specify the command and the new indexes const char *cmd_str = BSON_STR({ "createSearchIndexes" : "<collectionName>", "indexes" : [{ // Add your search index definition fields here "name" : "<firstIndexName>" }, { // Add your search index definition fields here "name" : "<secondIndexName>" }] }); // Convert your command to BSON if (!bson_init_from_json(&cmd, cmd_str, -1, &error)) { fprintf(stderr, "Failed to parse command: %s\n", error.message); ok = false; goto cleanup; } // Create the Atlas search indexes by running the command if (!mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { fprintf(stderr, "Failed to run createSearchIndexes: %s\n", error.message); ok = false; goto cleanup; } printf ("Indexes created!\n"); cleanup: mongoc_collection_destroy (collection); mongoc_client_destroy (client); mongoc_database_destroy (database); bson_destroy (&cmd); mongoc_cleanup (); return ok ? EXIT_SUCCESS : EXIT_FAILURE; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a collection para a qual você deseja criar o índice.
O nome do seu índice. Se você omitir o nome do índice, o Atlas Search nomeará o índice
default
.A definição do índice de pesquisa. Para saber mais, consulte Referência de índice.
Para usar o driver C++ para criar um índice do Atlas Search, defina o índice de pesquisa em seu aplicativo e chame o método create_one()
.
Observação
Os métodos de gerenciamento do Atlas Search Index são executados de forma assíncrona. Os métodos do driver podem ser gerados antes de confirmar que foram executados corretamente. Para determinar o status atual dos índices de pesquisa, chame o método list()
em uma instância de exibição do índice de pesquisa.
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicação de amostra passa um nome de índice de pesquisa e definição para o método search_index_model()
para indexar dinamicamente os campos em sua coleção. Em seguida, o aplicação passa as especificações do índice de pesquisa para o método create_one()
para criar o índice de pesquisa. Para saber mais, consulte Referência de índice.
using bsoncxx::builder::basic::kvp; using bsoncxx::builder::basic::make_document; using namespace mongocxx; int main() { try { // Connect to your Atlas deployment mongocxx::instance instance{}; mongocxx::uri uri("<connectionString>"); mongocxx::client client(uri); // Access your database and collection auto db = client["<databaseName>"]; auto collection = db["<collectionName>"]; // Create an index model with your index name and definition auto siv = collection.search_indexes(); auto name = "<indexName>"; auto definition = make_document(kvp("mappings", make_document(kvp("dynamic", true)))); auto model = search_index_model(name, definition.view()); // Create the search index siv.create_one(model); std::cout << "Index created!" << std::endl; } catch (const std::exception& e) { std::cout<< "Exception: " << e.what() << std::endl; } return 0; }
Você também pode criar múltiplos índices do Atlas Search de uma vez. Para cada índice de pesquisa que você quer criar, passe as especificações do índice de pesquisa para o método search_index_model()
. Em seguida, adicione cada índice de pesquisa a um vetor e passe o vetor para o método create_many()
para criar os índices de pesquisa:
using bsoncxx::builder::basic::kvp; using bsoncxx::builder::basic::make_document; using namespace mongocxx; int main() { try { // Connect to your Atlas deployment mongocxx::instance instance{}; mongocxx::uri uri("<connectionString>"); mongocxx::client client(uri); // Access your database and collection auto db = client["<databaseName>"]; auto collection = db["<collectionName>"]; // Create index models and add them to a vector auto siv = collection.search_indexes(); std::vector<search_index_model> models; auto name1 = "<firstIndexName>"; auto definition1 = make_document(/* Add search index definition fields here */); auto model1 = search_index_model(name1, definition1.view()); models.push_back(model1); auto name2 = "<secondIndexName>"; auto definition2 = make_document(/* Add search index definition fields here */); auto model2 = search_index_model(name2, definition2.view()); models.push_back(model2); // Create the search indexes siv.create_many(models); std::cout << "Indexes created!" << std::endl; } catch (const std::exception& e) { std::cout<< "Exception: " << e.what() << std::endl; } return 0; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a collection para a qual você deseja criar o índice.
O nome do seu índice. Se você omitir o nome do índice, o Atlas Search nomeará o índice
default
.
A definição do índice de pesquisa. Para saber mais, consulte Referência de índice.
Para usar o driver .NET/C# para criar um índice do Atlas Search:
Crie um
BsonDocument
que defina o índice.Passe o
BsonDocument
para o métodoCreateOne()
ouCreateOneAsync()
.
Crie um novo diretório e inicialize seu projeto.
Execute o seguinte comando para criar um novo diretório chamado
csharp-create-index
.mkdir csharp-create-index Execute o seguinte comando para mudar para o novo diretório.
cd csharp-create-index Execute o seguinte comando para inicializar seu projeto.
dotnet new console
Substitua o conteúdo do arquivo Program.cs
por um BsonDocument
que define o índice.
Substitua os valores de espaço reservado no seguinte aplicação de exemplo , que utiliza o comando SearchIndexes.CreateOne
para definir um índice do Atlas Search :
Valor | Descrição |
---|---|
| Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers. |
| Banco de dados para o qual você deseja criar o índice. |
| Coleção para a qual você deseja criar o índice. |
| O nome do seu índice. Se você omitir o nome do índice, o Atlas Search nomeará o índice |
| A definição do seu índice. Para saber mais sobre a sintaxe de definição de índice, consulte Referência de índice. |
1 using MongoDB.Bson; 2 using MongoDB.Driver; 3 4 // connect to your Atlas deployment 5 var uri = "<connection-string>"; 6 7 var client = new MongoClient(uri); 8 9 var db = client.GetDatabase("<databaseName>"); 10 var collection = db.GetCollection<BsonDocument>("<collectionName>"); 11 12 // define your Atlas Search index 13 var index = new BsonDocument 14 { 15 { "mappings", new BsonDocument 16 { 17 { "dynamic", true } 18 } 19 } 20 }; 21 22 var result = collection.SearchIndexes.CreateOne(index, "<indexName>"); 23 Console.WriteLine(result);
Substitua os valores de espaço reservado no seguinte aplicação de exemplo , que utiliza o comando SearchIndexes.CreateMany
para definir um índice do Atlas Search :
Valor | Descrição |
---|---|
| Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers. |
| Banco de dados para o qual você deseja criar o índice. |
| Coleção para a qual você deseja criar o índice. |
| Nome do seu primeiro índice. |
| Nome do seu último índice. |
| A definição do seu índice. Para saber mais sobre a sintaxe de definição de índice, consulte Referência de índice. |
1 using MongoDB.Bson; 2 using MongoDB.Driver; 3 4 // connect to your Atlas deployment 5 var uri = "<connection-string>"; 6 7 var client = new MongoClient(uri); 8 9 var db = client.GetDatabase("<databaseName>"); 10 var collection = db.GetCollection<BsonDocument>("<collectionName>"); 11 12 // define your Atlas Search indexes 13 var indexes = new List<CreateSearchIndexModel> 14 { 15 new CreateSearchIndexModel( 16 "<firstIndexName>", 17 new BsonDocument 18 { 19 <IndexDefinition>// search index definition fields 20 } 21 ), 22 ... 23 new CreateSearchIndexModel( 24 "<lastIndexName>", 25 new BsonDocument 26 { 27 <IndexDefinition> // search index definition fields 28 } 29 ) 30 }; 31 32 var result = collection.SearchIndexes.CreateMany(indexes);
Dica
Documentação da API
Para saber mais sobre os métodos desta página, consulte a documentação da API para o driver .NET/C#.
Para usar o Driver Java para criar um índice do Atlas Search, crie um documento que defina o índice de pesquisa e, em seguida, passe o documento para o método createSearchIndex()
ou createSearchIndexes()
.
Observação
Os métodos de gerenciamento do Atlas Search Index são executados de forma assíncrona. Os métodos do driver podem ser gerados antes de confirmar que foram executados corretamente. Para determinar o status atual dos índices, chame o método listSearchIndexes()
.
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicação de amostra define um índice de pesquisa para indexar dinamicamente os campos em sua collection e depois executa o método createSearchIndex()
para criar o índice. Para saber mais, consulte Referência de índice.
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; public class CreateIndex { public static void main(String[] args) { // connect to your Atlas cluster String uri = "<connection-string>"; try (MongoClient mongoClient = MongoClients.create(uri)) { // set namespace MongoDatabase database = mongoClient.getDatabase("<databaseName>"); MongoCollection<Document> collection = database.getCollection("<collectionName>"); Document index = new Document("mappings", new Document("dynamic", true)); collection.createSearchIndex("<index-name>", index); } } }
Você pode usar o seguinte aplicativo de exemplo para criar vários índices do Atlas Search de uma vez. Para fazer isso, crie um documento para cada índice de pesquisa que você deseja criar e, em seguida, passe os documentos como uma array para o método createSearchIndexes()
:
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.SearchIndexModel; import org.bson.Document; import java.util.Arrays; public class CreateIndex { public static void main(String[] args) { // connect to your Atlas cluster String uri = "<connection-string>"; try (MongoClient mongoClient = MongoClients.create(uri)) { // set namespace MongoDatabase database = mongoClient.getDatabase("<databaseName>"); MongoCollection<Document> collection = database.getCollection("<collectionName>"); SearchIndexModel indexOne = new SearchIndexModel("<first-index-name>", new Document( // search index definition fields )); SearchIndexModel indexTwo = new SearchIndexModel("<second-index-name>", new Document( // search index definition fields )); collection.createSearchIndexes(Arrays.asList(indexOne, indexTwo)); } } }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a collection para a qual você deseja criar o índice.
Os nomes dos seus índices. Se você omitir o nome de um índice, o Atlas Search nomeará o índice
default
.
Os campos para definir seu índice de pesquisa. Para saber mais, consulte Referência de índice.
Para criar um índice de pesquisa do Atlas Search por meio do Node Driver:
Defina o índice de pesquisa do seu aplicativo.
Execute o método assistente
createSearchIndex
oucreateSearchIndexes
.
Defina o índice de pesquisa.
Substitua os valores de espaço reservado no seguinte aplicação de exemplo denominado create-index.js
, que utiliza o comando createSearchIndex
para definir um índice do Atlas Search :
Valor | Descrição |
---|---|
| Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers. |
| Banco de dados para o qual você deseja criar o índice. |
| Coleção para a qual você deseja criar o índice. |
| Nome do seu índice. Se você omitir o nome do índice, o Atlas Search nomeará o índice |
| A definição do seu índice. Para saber mais sobre a sintaxe de definição de índice, consulte Referência de índice. |
import { MongoClient } from "mongodb"; // connect to your Atlas deployment const uri = "<connectionString>"; const client = new MongoClient(uri); async function run() { try { const database = client.db("<databaseName>"); const collection = database.collection("<collectionName>"); // define your Atlas Search index const index = { name: "<indexName>", definition: { /* search index definition fields */ <indexDefinition> } } // run the helper method const result = await collection.createSearchIndex(index); console.log(result); } finally { await client.close(); } } run().catch(console.dir);
Valor | Descrição |
---|---|
| Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers. |
| Banco de dados para o qual você deseja criar o índice. |
| Coleção para a qual você deseja criar o índice. |
| Nome do seu índice. Se você omitir o nome do índice, o Atlas Search nomeará o índice |
| A definição do seu índice. Para saber mais sobre a sintaxe de definição de índice, consulte Referência de índice. |
Substitua os valores de espaço reservado no seguinte aplicação de exemplo denominado create-index.js
, que utiliza o comando createSearchIndexes
para definir um índice do Atlas Search :
import { MongoClient } from "mongodb"; // connect to your Atlas deployment const uri = "<connection-string>"; const client = new MongoClient(uri); async function run() { try { const database = client.db("<databaseName>"); const collection = database.collection("<collectionName>"); // define an array of Atlas Search indexes const indexes = [ { name: "<first-index-name>", definition: { /* search index definition fields */ } }, ... { name: "<last-index-name>", definition: { /* search index definition fields */ } } ] // run the helper method const result = await collection.createSearchIndexes(indexes); console.log(result); } finally { await client.close(); } } run().catch(console.dir);
Para usar o driver Python para criar um índice do Atlas Search, defina o índice de pesquisa do seu aplicativo e chame o método create_search_index()
.
Observação
Os métodos de gerenciamento do Atlas Search Index são executados de forma assíncrona. Os métodos do driver podem ser gerados antes de confirmar que foram executados corretamente. Para determinar o status atual dos índices de pesquisa, chame o método list_search_indexes()
em sua coleção.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicação de amostra define um índice de pesquisa para indexar dinamicamente os campos em sua collection. Em seguida, o aplicação chama o método create_search_index()
em uma collection para criar o índice de pesquisa. Para saber mais, consulte Referência de índice.
from pymongo.mongo_client import MongoClient from pymongo.operations import SearchIndexModel def create_index(): # Connect to your Atlas deployment uri = "<connectionString>" client = MongoClient(uri) # Access your database and collection database = client["<databaseName>"] collection = database["<collectionName>"] # Create your index model, then create the search index search_index_model = SearchIndexModel( definition={ "mappings": { "dynamic": True }, }, name="<indexName>", ) result = collection.create_search_index(model=search_index_model) print(result)
Você também pode criar múltiplos índices do Atlas Search de uma vez. No seu aplicativo, defina uma array de índices de pesquisa. Em seguida, passe a array como parâmetro para o método create_search_indexes()
:
from pymongo.mongo_client import MongoClient from pymongo.operations import SearchIndexModel def create_indexes(): # Connect to your Atlas deployment uri = "<connectionString>" client = MongoClient(uri) # Access your database and collection database = client["<databaseName>"] collection = database["<collectionName>"] # Create your index models and add them to an array first_model = SearchIndexModel( definition={ # Add search index definition fields here }, name="<firstIndexName>", ) second_model = SearchIndexModel( definition={ # Add search index definition fields here }, name="<secondIndexName>", ) idx_models = [first_model, second_model] # Create the search indexes result = collection.create_search_indexes(models=idx_models) print(result)
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a collection para a qual você deseja criar o índice.
O nome do seu índice. Se você omitir o nome do índice, o Atlas Search nomeará o índice
default
.
A definição do índice de pesquisa. Para saber mais, consulte Referência de índice.
Quando você cria o índice do Atlas Search , a página Atlas Search exibe informações sobre os índices do Atlas Search . A Status coluna mostra o estado atual do índice no nó primário do cluster. Para saber mais, consulte Status do índice.
Aviso
Se você fragmentar uma collection que já tenha um índice do Atlas Search, poderá passar por um breve período de inatividade de query quando a coleção começar a aparecer em um fragmento. Além disso, se você adicionar um fragmento a uma coleção já fragmentada que contenha um índice do Atlas Search, suas pesquisas nessa coleção falharão até que o processo de initial sync seja concluído nos fragmentos adicionados. Para saber mais, consulte processo de sincronização inicial.
Ver índices de Atlas Search
➤ Use o menu suspenso Selecione seu idioma para definir o idioma do procedimento nesta seção.
Recuperar índices do Atlas Search para uma implantação em nuvem
Para listar todos os índices de pesquisa para um cluster utilizando o Atlas CLI, execute o seguinte comando:
atlas clusters search indexes list [options]
Para retornar os detalhes do índice de pesquisa que você especifica utilizando o Atlas CLI, execute o seguinte comando:
atlas clusters search indexes describe <indexId> [options]
Para saber mais sobre a sintaxe e os parâmetros dos comandos anteriores, consulte a documentação do Atlas CLI para Lista de índices doAtlas Atlas Search de Atlas do Atlas e Descrição dos índices do Atlas Search de clusters do Atlas.
Recuperar índices do Atlas Search para um sistema local
Para descrever o índice de pesquisa especificado para determinada implantação utilizando o Atlas CLI, execute o seguinte comando:
atlas deployments search indexes describe [indexId] [options]
Para listar todos os índices do Atlas Search para o sistema especificado utilizando o Atlas CLI, execute o seguinte comando:
atlas deployments search indexes list [options]
Para saber mais sobre a sintaxe e os parâmetros dos comandos anteriores, consulte a documentação da CLI do Atlas para descrição de índices de pesquisa de implantações atlas e lista de índices de pesquisa de implantações atlas.
Para recuperar um índice do Atlas Search usando a API do Atlas Search :
Envie uma solicitação GET
.
Envie uma solicitação GET
com o ID exclusivo ou o nome do índice do Atlas Search que você deseja recuperar para o endpoint search/indexes/
.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes/{indexId}"
Para saber mais sobre a sintaxe e os parâmetros de um endpoint, consulte Obter um por nome e Obter um por ID.
Para recuperar todos os índices do Atlas Search para uma coleção:
Envie uma solicitação GET
.
Envie uma solicitação GET
para o endpoint search/indexes/
com o nome da coleção cujos índices você quer recuperar.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes/{databaseName}/{collectionName}"
Para recuperar todos os índices do Atlas Search para um cluster:
Envie uma solicitação GET
.
Envie uma solicitação GET
para o endpoint search/indexes/
com o nome do cluster cujos índices você deseja recuperar.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes"
Para visualizar a página da Interface do Usuário Atlas Search do Atlas :
No Atlas, váGo para a Clusters página do seu projeto.
Aviso
Melhorias na navegação em andamento
No momento, estamos lançando uma experiência de navegação nova e aprimorada. Se as etapas a seguir não corresponderem à sua visualização na UI do Atlas, consulte a documentação de visualização.
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.
A página Atlas Search contém uma tabela que descreve cada um dos índices de Atlas Search existentes no seu projeto nas colunas a seguir.
coluna | Descrição |
---|---|
Database | Nome do banco de dados que contém a coleção. |
Collection | Nome da coleção indexada. |
Index Name | Nome do índice. |
Status | Status do índice no nó primário do cluster. Para saber mais, consulte Status do índice do Atlas Search. |
Queryable | Ícone que identifica se a coleção pode passar por query usando o índice. O valor pode ser um dos seguintes ícones:
|
Type | Tipo de índice. O valor pode ser um dos seguintes tipos de índice:
|
Index Fields | Campos indexados. O valor é |
Documents | Número aproximado e porcentagem de documentos indexados em relação ao número total de documentos na coleção durante e após a criação do índice no nó primário ou de pesquisa no cluster. |
Size | Tamanho do índice. |
Actions | Ações que você pode realizar no índice:
|
Por padrão, o Atlas classifica os índices primeiro pelo nome do banco de dados e depois pelo nome da collection. Para classificar por várias colunas, pressione Shift
e clique nos nomes das colunas na ordem em que você deseja classificar vários índices.
Nesta tabela, você pode acessar as seções a seguir para obter mais detalhes sobre cada índice:
Index Overview
Para ir para a Index Overview página a partir da Atlas Search página, clique no nome do índice que você deseja visualizar na Index Name coluna. Para cada índice, a Index Overview página mostra o namespace do índice e as seguintes configurações especificadas na definição do índice:
Linha | Descrição |
---|---|
Analisador de índice | analisador de texto escolhido que especifica como o texto é processado e tokenizado ao criar o índice de pesquisa. |
Analisador de pesquisa | analisador de texto escolhido que especifica como o texto em suas queries de pesquisa é processado e tokenizado. |
Mapeamento dinâmico | Booleano que indica se você habilitou ou não mapeamentos dinâmicos ou estáticos para seus mapeamentos de campo |
Mapeamentos de campo | Quaisquer mapeamentos de campo especificados, incluindo nome do campo, tipo de dados e se o mapeamento dinâmico está habilitado para o campo individual |
Campos de Origem Armazenados | Quaisquer campos de origem armazenadadefinidos |
Mapeamentos de sinônimos | Quaisquer mapeamentos de sinônimos definidos para equivalentes de palavras |
Status do índice
A coluna Status na página Atlas Search mostra o status atual do índice no nó primário do cluster. A tabela a seguir descreve os possíveis status de índice:
Status | Descrição |
---|---|
Pendente | Atlas ainda não começou a construir o índice. |
Construção | O Atlas está construindo o índice ou reconstruindo o índice após uma edição. Quando o índice está neste estado:
|
Pronto | O índice está pronto para uso. |
Stale | O índice está obsoleto por qualquer um dos seguintes motivos:
Você ainda pode executar uma query no índice existente. No entanto, os resultados das queries em um índice obsoleto podem conter dados obsoletos. Você pode aumentar a capacidade dos nós de pesquisa para obter mais espaço em disco e excluir os índices existentes para liberar espaço em disco. Como alternativa, use o erro na janela modal View status details para solucionar o problema. Para saber mais, consulte Corrigir problemas do Atlas Search. |
Falhou | O Atlas não conseguiu criar o índice. Use o erro na janela modal View status details para solucionar o problema. Para saber mais, consulte Corrigir problemas do Atlas Search. |
Excluindo | O Atlas está excluindo o índice dos nós de cluster. |
Não existe. | O índice é inválido porque a coleção do índice não existe mais. Você não pode executar consultas nesse índice porque não há nenhuma coleção correspondente para esse índice. O Atlas acabará excluindo o índice. |
Você pode ver mais informações de status na página Status Details de uma das seguintes maneiras:
Clique no link View status details na coluna Status.
Clique no nome na coluna Index Name e selecione Status Details no menu à esquerda do Index Overview.
A página Status Details contém as seguintes seções:
Queries de atendimento de índice
Esta seção exibe o índice que está sendo usado para atender às consultas.
Se você tem somente uma versão do índice com esse nome na coleção, a seção contém um link para o Index Overview onde você pode ver a definição de índice para o índice que está sendo usado.
Se você tinha outros índices com o mesmo nome na coleção, a seção mostra a definição de índice mais recente e também mostra as versões anteriores válidas do índice que você pode copiar em abas diferentes.
Quando você atualiza um índice, nós diferentes aplicam as atualizações em velocidades diferentes. Portanto, alguns nós podem usar a versão mais recente e alguns podem usar a versão anterior. O Atlas exibe ambas as versões do índice até que as alterações sejam aplicadas a todos os nós.
Se você tentar atualizar o índice com uma definição de índice inválida, a criação do índice falhará e o Atlas exibirá somente a definição de índice válida anterior.
Detalhes de status por nó
Esta seção exibe o status do índice em cada nó do cluster. Você pode ver os seguintes detalhes sobre o índice em cada nó:
Shard | Nome do fragmento. |
Node | Informações do nó. |
Status | Status do índice no nó no fragmento. |
Queryable | Ícone que indica se o índice pode atender às consultas. |
Message | Motivo do status do índice. Para índices no estado |
Node Type | Tipo de nó. O valor pode ser um dos seguintes tipos:
|
Region | Região do nó. |
Size | Tamanho do índice no nó. |
Documents | Número e porcentagem de documentos indexados. |
Actions | Ações que você pode executar no índice no nó. Você pode clicar em e selecionar uma das seguintes opções:
|
Migração para nós de pesquisa
Esta seção exibe o status da migração em andamento dos índices do Atlas Search e Atlas Vector Search para os nós de pesquisa, se aplicável. Esta seção será exibida somente se você estiver migrando para nós de pesquisa.
Clique no link View Migration Progress no banner de informações na seção Index Status by Search Node para obter detalhes sobre o progresso da migração dos índices para os nós de pesquisa (por nó).
A interface do usuário do Atlas exibe as seguintes colunas para cada índice no cluster.
coluna | Descrição |
---|---|
Database | Nome do banco de dados que contém a coleção. |
Collection | Nome da coleção indexada. |
Index Name | Nome do índice. |
Index Fields | Campos indexados. O valor é |
Type | Tipo de índice. O valor pode ser um dos seguintes tipos de índice:
|
Status | Status da migração. Para saber mais, consulte Migração para nós de pesquisa. |
Size | Tamanho do índice. |
Documents | Número e porcentagem de documentos indexados em relação ao número total de documentos na coleção durante e após a migração nos nós de pesquisa no cluster. |
A coluna de status exibe um dos seguintes status do índice nos nós de pesquisa:
Status | Descrição |
---|---|
Construção | Atualmente, o índice está sendo construído no Nó de Pesquisa. Suas consultas podem continuar usando índices existentes enquanto o novo índice está sendo criado. |
On Deck | O índice foi criado com êxito nos nós de pesquisa, mas a migração ainda não foi concluída. A migração é concluída somente quando o Atlas cria com êxito todos os índices nos nós de pesquisa. |
Pronto | O índice no nó de pesquisa está pronto para uso nas suas queries. Isso é exibido somente quando o Atlas conclui com êxito a migração para os nós de pesquisa. |
Falhou | A criação do índice falhou e a migração para nós de pesquisa separados foi interrompida. Suas queries podem continuar usando os índices existentes. O Atlas tentará reconstruir o índice, mas atingirá o tempo limite após 7 dias. Para migrar com sucesso, revise a mensagem de erro do índice na coluna Detalhes de status por Message nó ou na Status Details página do índice e resolva os problemas que estão fazendo com que a compilação do índice falhe nos nós de pesquisa. |
Suas queries podem continuar usando índices existentes enquanto os novos índices são criados nos nós de pesquisa. A migração para os Nós de Pesquisa é concluída somente quando o Atlas cria com êxito todos os índices nos Nós de Pesquisa. Em seguida, suas queries são roteadas automaticamente para usar os índices nos nós de pesquisa.
Para recuperar os índices do Atlas Search por meio do mongosh
, use o método db.collection.getSearchIndexes()
.
O comando tem a seguinte sintaxe. Se você omitir o nome do índice, o Atlas Search retornará todos os índices na coleção.
db.<collection>.getSearchIndexes("<index-name>")
Exemplo
O comando a seguir recupera um índice de pesquisa chamado default
da coleção movies
. Os resultados devem ser semelhantes ao resultado do exemplo:
db.movies.getSearchIndexes("default")
[ { id: '648b4ad4d697b73bf9d2e5e0', name: 'default', status: 'READY', queryable: true, latestDefinition: { mappings: { dynamic: true } } } ]
Para recuperar seus índices do Atlas Search por meio do Node Driver, use o método auxiliar listSearchIndexes
.
Exemplo
Você pode usar o seguinte aplicativo de exemplo chamado list-indexes.js
para retornar os índices em sua coleção. Especifique os seguintes valores:
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção que contêm os índices de pesquisa que você deseja recuperar.
O nome do índice se você desejar recuperar um índice específico. Para retornar todos os índices da collection, omita este valor.
Observação
O comando listSearchIndexes
retorna um cursor. Como resultado, ele não retorna imediatamente os índices correspondentes ao comando. Para acessar os resultados, use um paradigma de cursor, como o método toArray()
. Para saber mais, consulte Acessar dados de um cursor.
import { MongoClient } from "mongodb"; // connect to your Atlas deployment const uri = "<connection-string>"; const client = new MongoClient(uri); async function run() { try { const database = client.db("<databaseName>"); const collection = database.collection("<collectionName>"); // run the helper method const result = await collection.listSearchIndexes("<index-name>").toArray(); console.log(result); } finally { await client.close(); } } run().catch(console.dir);
Para executar o aplicativo de amostra, use o seguinte comando. Seus resultados devem se assemelhar à saída do exemplo:
node list-indexes.js
[ { id: '648b4ad4d697b73bf9d2e5e0', name: 'default', status: 'READY', queryable: true, latestDefinition: { mappings: { dynamic: true } } }, { id: '648b4ad4d697b73bf9d2e5e1', name: 'example-index', status: 'PENDING', queryable: false, latestDefinition: { mappings: { dynamic: false, fields: { text: { type: 'string' } } } } } ]
Para usar o driver .NET/C# para recuperar seus índices do Atlas Search, use o método List()
ou ListAsync()
.
Exemplo
O seguinte aplicativo de amostra retorna os índices em uma coleção. Especifique os seguintes valores:
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção que contêm os índices de pesquisa que você deseja recuperar.
Observação
O método List()
retorna um cursor em vez dos próprios índices. Para acessar os índices, use um paradigma de cursor, como o método MoveNext()
.
using MongoDB.Bson; using MongoDB.Driver; // connect to your Atlas deployment var uri = "<connection-string>"; var client = new MongoClient(uri); var db = client.GetDatabase("<databaseName>"); var collection = db.GetCollection<BsonDocument>("<collectionName>"); // list your Atlas Search indexes var result = collection.SearchIndexes.List().ToList(); foreach (var index in result) { Console.WriteLine(index); }
Para executar o aplicativo de amostra, crie um novo projeto de console .NET chamado csharp-list-indexes
e copie o exemplo de código anterior para o arquivo Program.cs
. Em seguida, use o seguinte comando para executar o projeto:
dotnet run csharp-list-indexes.csproj
<indexes for this collection>
Dica
Documentação da API
Para saber mais sobre os métodos desta página, consulte a documentação da API para o driver .NET/C#.
Para recuperar os índices do Atlas Search em uma coleção usando o driver Java, use o método listSearchIndexes()
. Você deve ter o driver Java v4.11.0 ou superior.
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicativo de amostra recupera todos os índices do Atlas Search em uma determinada coleção.
1 import com.mongodb.client.MongoClient; 2 import com.mongodb.client.MongoClients; 3 import com.mongodb.client.MongoCollection; 4 import com.mongodb.client.MongoCursor; 5 import com.mongodb.client.MongoDatabase; 6 import org.bson.Document; 7 public class ViewIndex { 8 public static void main(String[] args) { 9 // connect to your Atlas cluster 10 String uri = "<connection-string>"; 11 try (MongoClient mongoClient = MongoClients.create(uri)) { 12 // set namespace 13 MongoDatabase database = mongoClient.getDatabase("<database-name>"); 14 MongoCollection<Document> collection = database.getCollection("<collection-name>"); 15 // retrieve indexes 16 try (MongoCursor<Document> resultsCursor = collection.listSearchIndexes().iterator()) { 17 while (resultsCursor.hasNext()) { 18 System.out.println(resultsCursor.next()); 19 } 20 } 21 } 22 } 23 }
Substitua os seguintes valores e salve o arquivo.
<connection-string>
- Sua string de conexão do Atlas. Para saber mais, consulte Conectar via drivers.<database-name>
- O nome do banco de dados que contém a coleção.<collection-name>
- O nome da collection para a qual você deseja recuperar o índice.
Veja também:
Para usar o driver C++ para recuperar os índices do Atlas Search, chame o método list()
em uma visualização de índice de pesquisa.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicativo de amostra usa o método search_indexes()
na coleção de destino para instanciar uma exibição de índice de pesquisa. Em seguida, o aplicativo chama o método list()
na exibição. Esse método retorna um cursor pelo qual o código acessa e imprime cada índice do Atlas Search.
using namespace mongocxx; int main() { mongocxx::instance instance{}; try { // Connect to your Atlas deployment mongocxx::uri uri("<connectionString>"); mongocxx::client client(uri); // Access your database and collection auto db = client["<databaseName>"]; auto collection = db["<collectionName>"]; // Access and print the indexes in your collection auto siv = collection.search_indexes(); auto cursor = siv.list(); for (auto&& doc : cursor) { std::cout << bsoncxx::to_json(doc) << std::endl; }; } catch (const std::exception& e) { std::cout<< "Exception: " << e.what() << std::endl; } return 0; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja obter os índices.
Para usar o driver C para recuperar seus índices de Atlas Search , use o método mongoc_collection_aggregate()
para criar um pipeline de agregação que inclua o estágio $listSearchIndexes
.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O aplicativo de exemplo a seguir especifica o estágio $listSearchIndexes
em um pipeline de agregação. Em seguida, o aplicativo passa o pipeline e a coleção de destino para o método mongoc_collection_aggregate()
. Esse método retorna um cursor pelo qual o código acessa e imprime cada índice do Atlas Search:
int main (void) { mongoc_client_t *client = NULL; mongoc_collection_t *collection = NULL; mongoc_database_t *database = NULL; bson_error_t error; bson_t cmd = BSON_INITIALIZER; bool ok = true; bson_t pipeline = BSON_INITIALIZER; mongoc_cursor_t *cursor = NULL; mongoc_init(); // Connect to your Atlas deployment client = mongoc_client_new("<connectionString>"); if (!client) { fprintf(stderr, "Failed to create a MongoDB client.\n"); ok = false; goto cleanup; } // Access your database and collection database = mongoc_client_get_database(client, "<databaseName>"); collection = mongoc_database_get_collection(database, "<collectionName>"); // Create an aggregation pipeline with the $listSearchIndexes stage const char *pipeline_str = BSON_STR ({"pipeline" : [ {"$listSearchIndexes" : {}} ]}); // Convert your aggregation pipeline to BSON if (!bson_init_from_json(&pipeline, pipeline_str, -1, &error)) { fprintf(stderr, "Failed to parse command: %s\n", error.message); ok = false; goto cleanup; } // Run the aggregation operation and iterate through the indexes returned cursor = mongoc_collection_aggregate (collection, MONGOC_QUERY_NONE, &pipeline, NULL, NULL); const bson_t *got; char *str; while (mongoc_cursor_next (cursor, &got)) { str = bson_as_canonical_extended_json (got, NULL); printf ("%s\n", str); bson_free (str); } if (mongoc_cursor_error (cursor, &error)) { fprintf (stderr, "Failed to iterate all documents: %s\n", error.message); ok = false; goto cleanup; } cleanup: mongoc_cursor_destroy(cursor); mongoc_collection_destroy(collection); mongoc_database_destroy(database); mongoc_client_destroy(client); bson_destroy(&pipeline); bson_destroy(&cmd); mongoc_cleanup (); return ok ? EXIT_SUCCESS : EXIT_FAILURE; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja obter os índices.
Para usar o Python Driver para recuperar os índices do Atlas Search, chame o método list_search_indexes()
em sua coleção.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O aplicativo de exemplo a seguir chama o método list_search_indexes()
em uma coleção. Esse método retorna um cursor pelo qual o código acessa e imprime cada índice do Atlas Search:
from pymongo.mongo_client import MongoClient def view_index(): # Connect to your Atlas deployment uri = "<connectionString>" client = MongoClient(uri) # Access your database and collection database = client["<databaseName>"] collection = database["<collectionName>"] # Get a list of the collection's search indexes and print them cursor = collection.list_search_indexes() for index in cursor: print(index)
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja obter os índices.
Retomar ou excluir um rascunho de índice do Atlas Search
Para retomar ou excluir sua definição de índice que você salvou como rascunho na UI do Atlas :
Importante
Você não pode criar um novo índice quando tiver um rascunho de índice pendente.
No Atlas, váGo para a Clusters página do seu projeto.
Aviso
Melhorias na navegação em andamento
No momento, estamos lançando uma experiência de navegação nova e aprimorada. Se as etapas a seguir não corresponderem à sua visualização na UI do Atlas, consulte a documentação de visualização.
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.
Verifique o status.
O índice recém-criado aparece na aba Atlas Search. Enquanto o índice está construindo, o campo Status lê Build in Progress. Quando o índice terminar de construir, o campo Status lê Active.
Observação
Collections maiores demoram mais tempo para indexar. Você receberá uma notificação por e-mail quando seu índice terminar a criação.
Editar um índice de pesquisa do Atlas
Você pode alterar a definição de índice de um índice existente do Atlas Search. Não é possível renomear um índice; se você precisar alterar o nome de um índice, deverá criar um novo índice e excluir o antigo.
Você pode editar um índice do Atlas Search na UI do Atlas ou programaticamente usando mongosh
, a Atlas CLI, a API ou um driver MongoDB compatível na linguagem de sua preferência.
➤ Use o menu suspenso Selecione seu idioma para definir o idioma do procedimento nesta seção.
Para editar um índice do Atlas Search usando a API:
Envie uma solicitação PATCH
.
Envie uma solicitação PATCH
com o ID exclusivo ou o nome do índice do Atlas Search que você deseja modificar para o ponto de extremidade search/indexes/
.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes/{indexId}" \ --data ' { "definition": { "analyzer": "lucene.<analyzer>", "analyzers": [ { "charFilters": [ ... ], "name": "string", "tokenFilters": [ ... ], "tokenizer": { ... } } ], "mappings": { "dynamic": true | false, "fields": { "property1": {}, ... } }, "searchAnalyzer": "<analyzer-name>", "storedSource": { "include | exclude": [...] }, "synonyms": [ { <synonym-mapping-definition> } } ] } }'
Para saber mais sobre a sintaxe e os parâmetros de um dos endpoints, consulte Atualizar um por nome e Atualizar um por ID.
Para atualizar um índice de pesquisa para um cluster utilizando o Atlas CLI, execute o seguinte comando:
atlas clusters search indexes update <indexId> [options]
Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI para atualização de índices de pesquisa dos clusters do Atlas.
No Atlas, váGo para a Clusters página do seu projeto.
Aviso
Melhorias na navegação em andamento
No momento, estamos lançando uma experiência de navegação nova e aprimorada. Se as etapas a seguir não corresponderem à sua visualização na UI do Atlas, consulte a documentação de visualização.
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.
Revise as definições de configuração atuais e edite-as conforme necessário.
Revise as seguintes configurações de índice:
Campo do Editor Visual | Descrição | necessidade |
---|---|---|
Index Analyzer | Especifique o analisador a ser usado para indexar os dados da coleção Por padrão, o Atlas Search utiliza o analisador padrão ( Corresponde à configuração JSON do | Opcional |
Search Analyzer | Especifica o analisador a ser aplicado ao texto de consulta antes de pesquisar o texto. Se você omitir este campo, o índice herda um analisador por padrão na seguinte ordem:
Corresponde à configuração JSON do | Opcional |
Dynamic Mapping | Especifique o mapeamento dinâmico ou estático dos campos. Por padrão, o mapeamento dinâmico está habilitado. Para desativar o mapeamento dinâmico, defina Para saber mais sobre mapeamentos dinâmicos e estáticos, consulte Definir mapeamentos de campo. Corresponde à configuração JSON do | Obrigatório |
Revise as seguintes configurações avançadas:
Nome do campo | Descrição | necessidade |
---|---|---|
Field Mappings | Obrigatório se Dynamic Mapping na seção Index Configurations estiver desabilitado. Especifique os campos no índice:
Para saber mais sobre como definir mapeamentos de campo, consulte Referência de índice. Corresponde à configuração JSON do | Condicional |
Stored Source Fields | Especifique os campos para armazenar no Atlas Search para pesquisas de tempo de query. Você pode armazenar campos de todos os tipos de dados suportados na Atlas Search. Para saber mais sobre como armazenar campos, consulte Definir campos de origem armazenados em seu índice do Atlas Search. Corresponde à configuração JSON do | Opcional |
Synonyms Mappings | Especifique mapeamentos de sinônimos para usar em seu índice. Você pode utilizar um mapeamento de sinônimo para fazer uma query somente em campos analisados com o mesmo analisador. Para saber mais sobre mapeamentos de sinônimos, consulte Definir mapeamentos de sinônimos no índice do Atlas Search. Corresponde à configuração JSON do | Opcional. |
Index Partitions | O número de partições a serem usadas se os objetos de campo excederem 2.1 bilhões. Corresponde à configuração JSON do | Opcional. |
Revise as seguintes configurações de índice:
Nome do campo | Descrição | necessidade |
---|---|---|
| Especifique o analisador a ser usado para indexar os dados da coleção Por padrão, o Atlas Search utiliza o analisador padrão ( | Opcional |
| Especifica o analisador a ser aplicado ao texto de consulta antes de pesquisar o texto. Se você omitir este campo, o índice herda um analisador por padrão na seguinte ordem: | Opcional |
| Especifique o mapeamento dinâmico ou estático dos campos. Para desativar o mapeamento dinâmico, defina | Obrigatório |
Revise as seguintes configurações avançadas:
Nome do campo | Descrição | necessidade |
---|---|---|
| Obrigatório se Especifique os campos que você deseja indexar. Para saber mais, consulte Definir mapeamentos de campo. | Condicional |
| Especifique os campos para armazenar no Atlas Search para pesquisas de tempo de query. Você pode armazenar campos de todos os tipos de dados suportados na Atlas Search. Para saber mais sobre como armazenar campos, consulte Definir campos de origem armazenados em seu índice do Atlas Search. | Opcional |
| Especifique mapeamentos de sinônimos para usar em seu índice. Você pode utilizar um mapeamento de sinônimo para fazer uma query somente em campos analisados com o mesmo analisador. Para saber mais sobre mapeamentos de sinônimos, consulte Definir mapeamentos de sinônimos no índice do Atlas Search. | Opcional |
| O número de partições a serem usadas se os objetos de campo excederem 2.1 bilhões. | Opcional. |
Para saber mais sobre essas configurações de definição de índice, consulte Referência de índice.
Clique em Save para aplicar as alterações.
O status do índice muda de Active para Building. Nesse estado, você pode continuar usando o índice antigo porque o Atlas Search não exclui o índice antigo até que o índice atualizado esteja pronto para uso. Após o status retornar para Active, o índice modificado estará pronto para ser utilizado.
Para editar um índice do Atlas Search por meio mongosh
, use o método db.collection.updateSearchIndex()
.
O comando tem a seguinte sintaxe. Especifique o nome do índice que você deseja editar e defina a nova definição de índice. Esta definição substitui a definição existente do índice. Para saber mais, consulte Referência de índice.
db.<collection>.updateSearchIndex( "<index-name>", /* updated search index definition */ )
Exemplo
O comando a seguir atualiza um índice de pesquisa chamado default
da coleção movies
para usar mapeamentos estáticos:
db.movies.updateSearchIndex( "default", { "mappings": { "dynamic": false, "fields": { "<field-name>": { "type": "<field-type>" } } } )
Observação
O comando db.collection.updateSearchIndex()
não retorna uma saída. Você pode utilizar a interface do usuário do Atlas para visualizar o status do índice.
Para usar o driver C para editar seus índices do Atlas Search, especifique as informações de índice atualizadas no aplicativo e chame o método mongoc_collection_command_simple()
.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O aplicativo de amostra a seguir especifica o comando updateSearchIndex
, uma definição de índice atualizada e um nome de índice existente. Em seguida, o aplicativo converte o comando e as informações atualizadas do índice em BSON e passa essas informações para o método mongoc_collection_command_simple()
para editar o índice de pesquisa.
int main (void) { mongoc_client_t *client = NULL; mongoc_collection_t *collection = NULL; mongoc_database_t *database = NULL; bson_error_t error; bson_t cmd = BSON_INITIALIZER; bool ok = true; mongoc_init(); // Connect to your Atlas deployment client = mongoc_client_new("<connectionString>"); if (!client) { fprintf(stderr, "Failed to create a MongoDB client.\n"); ok = false; goto cleanup; } // Access your database and collection database = mongoc_client_get_database(client, "<databaseName>"); collection = mongoc_database_get_collection(database, "<collectionName>"); // Specify the command and the updated index definition const char *cmd_str = BSON_STR({ "updateSearchIndex" : "<collectionName>", "definition" : {"mappings" : {"dynamic" : true}}, "name" : "<indexName>" }); // Convert your command to BSON if (!bson_init_from_json(&cmd, cmd_str, -1, &error)) { fprintf(stderr, "Failed to parse command: %s\n", error.message); ok = false; goto cleanup; } // Update the Atlas search index by running the command if (!mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { fprintf(stderr, "Failed to run updateSearchIndex: %s\n", error.message); ok = false; goto cleanup; } printf ("Index updated!\n"); cleanup: mongoc_collection_destroy (collection); mongoc_database_destroy (database); mongoc_client_destroy (client); bson_destroy (&cmd); mongoc_cleanup (); return ok ? EXIT_SUCCESS : EXIT_FAILURE; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja atualizar um índice.
O nome do índice que você deseja atualizar.
Os campos para redefinir seu índice de pesquisa. Para saber mais, consulte Referência de índice.
Para usar o driver C++ para editar um índice do Atlas Search, chame o método update_one()
em uma visualização de índice de pesquisa.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O aplicativo de exemplo a seguir instancia uma visualização do índice de pesquisa e especifica uma nova definição de índice do Atlas Search. Em seguida, o aplicativo passa essa definição e um nome de índice existente para o método update_one()
, que atualiza o índice existente para refletir o novo documento de definição.
using namespace mongocxx; using bsoncxx::builder::basic::make_document; int main() { mongocxx::instance instance{}; try { // Connect to your Atlas deployment mongocxx::uri uri("<connectionString>"); mongocxx::client client(uri); // Access your database and collection auto db = client["<databaseName>"]; auto collection = db["<collectionName>"]; // Access the indexes in your collection auto siv = collection.search_indexes(); // Specify a new definiton and update your search index auto newDefinition = make_document(kvp("mappings", make_document(kvp("dynamic", true)))); siv.update_one("<indexName>", newDefinition.view()); } catch (const std::exception& e) { std::cout<< "Exception: " << e.what() << std::endl; } return 0; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja atualizar um índice.
O nome do índice que você deseja atualizar.
Os campos para redefinir seu índice de pesquisa. Para saber mais, consulte Referência de índice.
Para usar o driver .NET/C# para editar um índice do Atlas Search, use o método Update()
ou UpdateAsync()
.
Exemplo
O aplicativo de exemplo a seguir atualiza uma definição de índice existente. Especifique os seguintes valores:
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção onde você criou o índice de pesquisa.
A nova definição de índice para substituir a definição existente. No exemplo, você atualiza um índice para utilizar mapeamentos estáticos. Você pode alterar esta definição para atender às suas necessidades de indexação específicas. Para saber mais, consulte Referência de índice.
O nome do índice que você deseja atualizar.
using MongoDB.Bson; using MongoDB.Driver; // connect to your Atlas deployment var uri = "<connection-string>"; var client = new MongoClient(uri); var db = client.GetDatabase("<databaseName>"); var collection = db.GetCollection<BsonDocument>("<collectionName>"); // define your Atlas Search index var index = new BsonDocument { // updated search index definition { "mappings", new BsonDocument { { "dynamic", false }, { "fields", new BsonDocument { { "<field-name>", new BsonDocument { { "type", "<field-type>" } } } } } } } }; collection.SearchIndexes.Update("<index-name>", index);
Para executar o aplicativo de amostra, crie um novo projeto de console .NET chamado csharp-update-index
e copie o exemplo de código anterior para o arquivo Program.cs
. Em seguida, use o seguinte comando para executar o projeto:
dotnet run csharp-update-index.csproj
Observação
O método Update()
não retorna uma saída. Você pode utilizar a interface do usuário do Atlas para visualizar o status do índice.
Dica
Documentação da API
Para saber mais sobre os métodos desta página, consulte a documentação da API para o driver .NET/C#.
Para processar um índice de Atlas Search em uma coleção usando o driver Java, crie um documento que modifique as configurações do índice de pesquisa e, em seguida, passe o documento para o método updateSearchIndex()
. Você deve ter o driver Java v4.11.0 ou superior.
Copie o seguinte exemplo de código no arquivo.
1 import com.mongodb.client.MongoClient; 2 import com.mongodb.client.MongoClients; 3 import com.mongodb.client.MongoCollection; 4 import com.mongodb.client.MongoDatabase; 5 import org.bson.Document; 6 7 public class EditIndex { 8 public static void main(String[] args) { 9 // connect to your Atlas cluster 10 String uri = "<connection-string>"; 11 12 try (MongoClient mongoClient = MongoClients.create(uri)) { 13 // set namespace 14 MongoDatabase database = mongoClient.getDatabase("<document-name>"); 15 MongoCollection<Document> collection = database.getCollection("<collection-name>"); 16 // define field mappings 17 Document index = new Document("analyzer", "<analyzer-name>").append( 18 "mappings", new Document("dynamic", <true|false>) 19 .append("fields", new Document("<field-name>", 20 new Document("type", "<field-type>")))); 21 // run the updateSearchIndex() method 22 collection.updateSearchIndex("<index-name>", index); 23 } 24 } 25 }
Substitua os seguintes valores no código e salve o arquivo.
<connection-string>
- Sua string de conexão do Atlas. Para saber mais, consulte Conectar via drivers.Observação
Na sua string de conexão, não inclua a configuração writeConcern .
<database-name>
- O nome do banco de dados que contém a coleção.<collection-name>
- O nome da collection para a qual você deseja recuperar o índice.<analyzer-name>
- O nome do analisador.dynamic
- O sinalizador que indica se os campos devem ou não ser indexados indexados.<field-name>
- O nome do campo a ser indexado.<field-type>
- O tipo de dados do campo.<index-name>
- O nome do índice.
Compile e execute o arquivo.
javac EditIndex.java java EditIndex
O método updateSearchIndex()
é executado de forma assíncrona. Use o método listSearchIndexes()
para determinar se as alterações foram aplicadas ao seu índice. Para saber mais sobre como recuperar índices do Atlas Search, consulte Visualizar índices do Atlas Search.
Veja também:
Para editar um índice do Atlas Search pelo driver Node, use o método de assistente updateSearchIndex
.
Exemplo
Você pode usar o aplicativo de exemplo a seguir chamado update-index.js
para atualizar uma definição de índice existente. Especifique os seguintes valores:
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção onde você criou o índice de pesquisa.
A nova definição de índice para substituir a definição existente. No exemplo, você atualiza um índice para utilizar mapeamentos estáticos. Você pode alterar esta definição para atender às suas necessidades de indexação específicas. Para saber mais, consulte Referência de índice.
O nome do índice que você deseja atualizar.
import { MongoClient } from "mongodb"; // connect to your Atlas deployment const uri = "<connection-string>"; const client = new MongoClient(uri); async function run() { try { const database = client.db("<databaseName>"); const collection = database.collection("<collectionName>"); // define your Atlas Search index const index = { /* updated search index definition */ "mappings": { "dynamic": false, "fields": { "<field-name>": { "type": "<field-type>" } } } } // run the helper method await collection.updateSearchIndex("<index-name>", index); } finally { await client.close(); } } run().catch(console.dir);
Para executar o aplicativo de amostra, use o seguinte comando:
node update-index.js
Observação
O método updateSearchIndex
não retorna uma saída. Você pode utilizar a interface do usuário do Atlas para visualizar o status do índice.
Para usar o driver Python para atualizar os índices do Atlas Search, chame o método update_search_index()
na sua coleção.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O aplicativo de exemplo a seguir especifica uma nova definição de índice do Atlas Search. Em seguida, o aplicativo passa essa definição e um nome de índice existente para o método update_search_index()
, que atualiza o índice existente para refletir o novo documento de definição.
from pymongo.mongo_client import MongoClient def edit_index(): # Connect to your Atlas deployment uri = "<connectionString>" client = MongoClient(uri) # Access your database and collection database = client["<databaseName>"] collection = database["<collectionName>"] # Specify a new index definition definition = { "mappings": { "dynamic": True }, } # Update your search index collection.update_search_index("<indexName>", definition)
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja atualizar um índice.
O nome do índice que você deseja atualizar.
Os campos para redefinir seu índice de pesquisa. Para saber mais, consulte Referência de índice.
Observação
Enquanto seu índice atualizado está sendo criado, nós diferentes podem ser atualizados em velocidades diferentes. Durante esse período, você pode enfrentar resultados de query mistos, refletindo tanto a nova definição de índice quanto a definição de índice anterior. Você pode visualizar o índice que está atendendo as queries na página de detalhes do status do índice.
Atualizar um índice existente
Alguns recursos do Atlas Search exigem que você atualize o índice. Para atualizar seu índice, você pode realizar uma das seguintes ações:
Edite a definição do índice utilizando as etapas em Editar um índice do Atlas Search.
Execute as seguintes etapas para aceitar uma atualização de índice da UI do Atlas :
Importante
O processo de atualização do índice do Atlas Search exige tempo e recursos. Para que a atualização do índice seja concluída com êxito, aloque espaço livre em disco igual a 125% do espaço em disco do índice atual.
No Atlas, váGo para a Clusters página do seu projeto.
Aviso
Melhorias na navegação em andamento
No momento, estamos lançando uma experiência de navegação nova e aprimorada. Se as etapas a seguir não corresponderem à sua visualização na UI do Atlas, consulte a documentação de visualização.
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.
Excluir um índice do Atlas Search
Você pode excluir um índice do Atlas Search na UI do Atlas ou programaticamente usando mongosh
, a Atlas CLI, a API ou um driver MongoDB compatível em seu idioma preferido.
➤ Use o menu suspenso Selecione seu idioma para definir o idioma do procedimento nesta seção.
Para excluir um índice do Atlas Search por meio da API:
Envie uma solicitação DELETE
.
Envie uma solicitação DELETE
com o ID ou nome exclusivo do índice do Atlas Search que você quer excluir para o endpoint search/indexes/
.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --include \ --request DELETE "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes/{indexId}"
Para saber mais sobre a sintaxe e os parâmetros de um dos endpoints, consulte Excluir um por nome e Excluir um por ID.
Excluir um índice do Atlas Search para um sistema em nuvem
Para excluir um índice de pesquisa de um agrupamento utilizando o Atlas CLI, execute o seguinte comando:
atlas clusters search indexes delete <indexId> [options]
Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI sobre excluir índices de pesquisa dos clusters do Atlas.
Excluir um índice de pesquisa do Atlas Search para um Local Deployment
Para excluir o índice de pesquisa especificado para o sistema especificado utilizando o Atlas CLI, execute o seguinte comando:
atlas deployments search indexes delete <indexId> [options]
Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação da Atlas CLI do Atlas para Atlas índices do Atlas Search nas implantações do Atlas.
No Atlas, váGo para a Clusters página do seu projeto.
Aviso
Melhorias na navegação em andamento
No momento, estamos lançando uma experiência de navegação nova e aprimorada. Se as etapas a seguir não corresponderem à sua visualização na UI do Atlas, consulte a documentação de visualização.
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.
Para excluir um índice do Atlas Search por meio de mongosh
, use o método db.collection.dropSearchIndex()
.
O comando tem a seguinte sintaxe:
db.<collection>.dropSearchIndex("<index-name>")
Exemplo
O seguinte comando exclui um índice de pesquisa chamado default
da coleção movies
:
db.movies.dropSearchIndex("default")
Observação
O comando db.collection.dropSearchIndex()
não retorna uma saída. Você pode utilizar a interface do usuário do Atlas para visualizar o status do índice.
Para usar o driver C para excluir seu índice do Atlas Search , passe sua coleção e o comando de descarte para o método mongoc_collection_command_simple()
.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O aplicativo de exemplo a seguir especifica o comando dropSearchIndex
e um nome de índice existente. Em seguida, o aplicativo converte o comando e as informações de índice para BSON e passa essas informações para o método mongoc_collection_command_simple()
para excluir o índice de pesquisa.
int main (void) { mongoc_client_t *client = NULL; mongoc_collection_t *collection = NULL; mongoc_database_t *database = NULL; bson_error_t error; bson_t cmd = BSON_INITIALIZER; bool ok = true; mongoc_init(); // Connect to your Atlas deployment client = mongoc_client_new("<connectionString>"); if (!client) { fprintf(stderr, "Failed to create a MongoDB client.\n"); ok = false; goto cleanup; } // Access your database and collection database = mongoc_client_get_database(client, "<databaseName>"); collection = mongoc_database_get_collection(database, "<collectionName>"); // Specify the command and the index name const char *cmd_str = BSON_STR ({"dropSearchIndex" : "<collectionName>", "name" : "<indexName>"}); // Convert your command to BSON if (!bson_init_from_json(&cmd, cmd_str, -1, &error)) { fprintf(stderr, "Failed to parse command: %s\n", error.message); ok = false; goto cleanup; } // Run the command to drop the search index if (!mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { fprintf(stderr, "Failed to run dropSearchIndex: %s\n", error.message); ok = false; goto cleanup; } printf ("Index dropped!\n"); cleanup: mongoc_collection_destroy(collection); mongoc_database_destroy(database); mongoc_client_destroy(client); bson_destroy(&cmd); mongoc_cleanup (); return ok ? EXIT_SUCCESS : EXIT_FAILURE; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja excluir um índice.
O nome do índice que você deseja excluir.
Para usar o driver C++ para excluir o índice do Atlas Search, chame o método drop_one()
em uma visualização de índice de pesquisa.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicativo de amostra usa o método search_indexes()
na coleção de destino para instanciar uma exibição de índice de pesquisa. Em seguida, o aplicativo chama o método drop_one()
na exibição e passa um nome de índice do Atlas Search como um parâmetro para excluir o índice.
using namespace mongocxx; int main() { mongocxx::instance instance{}; try { // Connect to your Atlas deployment mongocxx::uri uri("<connectionString>"); mongocxx::client client(uri); // Access your database and collection auto db = client["<databaseName>"]; auto collection = db["<collectionName>"]; // Access the indexes in your collection auto siv = collection.search_indexes(); // Delete your search index auto name = "<indexName>"; siv.drop_one(name); } catch (const std::exception& e) { std::cout<< "Exception: " << e.what() << std::endl; } return 0; }
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja obter os índices.
O nome do índice que você deseja excluir.
Para usar o driver .NET/C# para excluir um índice do Atlas Search, use o método DropOne()
ou DropOneAsync()
.
Exemplo
O seguinte aplicativo de exemplo exclui um índice de uma coleção. Especifique os seguintes valores:
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção que contêm o índice de pesquisa que você deseja excluir.
O nome do índice de pesquisa que você deseja excluir.
using MongoDB.Bson; using MongoDB.Driver; // connect to your Atlas deployment var uri = "<connection-string>"; var client = new MongoClient(uri); var db = client.GetDatabase("<databaseName>"); var collection = db.GetCollection<BsonDocument>("<collectionName>"); // drop your Atlas Search index collection.SearchIndexes.DropOne("<index name>");
Para executar o aplicativo de amostra, crie um novo projeto de console .NET chamado csharp-delete-index
e copie o exemplo de código anterior para o arquivo Program.cs
. Em seguida, use o seguinte comando para executar o projeto:
dotnet run csharp-delete-index.csproj
Observação
O método DropOne()
não retorna uma saída. Você pode utilizar a interface do usuário do Atlas para visualizar o status do índice.
Dica
Documentação da API
Para saber mais sobre os métodos desta página, consulte a documentação da API para o driver .NET/C#.
Para excluir um índice do Atlas Search em uma coleção usando o Java Driver, use o método dropSearchIndex()
. Você deve ter o Java Driver v4.11.0 ou superior.
Copie o seguinte exemplo de código no arquivo.
O seguinte aplicativo de amostra exclui o índice do Atlas Search especificado na coleção especificada.
1 import com.mongodb.client.MongoClient; 2 import com.mongodb.client.MongoClients; 3 import com.mongodb.client.MongoCollection; 4 import com.mongodb.client.MongoDatabase; 5 import org.bson.Document; 6 7 public class DeleteIndex { 8 public static void main(String[] args) { 9 // connect to your Atlas cluster 10 String uri = "<connection-string>"; 11 12 try (MongoClient mongoClient = MongoClients.create(uri)) { 13 // set namespace 14 MongoDatabase database = mongoClient.getDatabase("<database-name>"); 15 MongoCollection<Document> collection = database.getCollection("<collection>"); 16 // delete the index 17 collection.dropSearchIndex("<index-name>"); 18 } 19 } 20 }
Substitua os seguintes valores e salve o arquivo.
<connection-string>
- Sua string de conexão do Atlas. Para saber mais, consulte Conectar via drivers.Observação
Na sua string de conexão, não inclua a configuração writeConcern .
<database-name>
- O nome do banco de dados que contém a coleção.<collection-name>
- O nome da collection para a qual você deseja recuperar o índice.<index-name>
- o nome do índice a ser excluído.
Veja também:
Para excluir um índice do Atlas Search por meio do driver Node, use o método auxiliar dropSearchIndex
.
Exemplo
Você pode usar o seguinte aplicativo de amostra chamado drop-index.js
para excluir um índice na sua collection. Especifique os seguintes valores:
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção onde você criou o índice de pesquisa.
O nome do índice que você deseja excluir.
// connect to your Atlas deployment const uri = "<connection-string>"; const client = new MongoClient(uri); async function run() { try { const database = client.db("<databaseName>"); const collection = database.collection("<collectionName>"); // run the helper method await collection.dropSearchIndex("<index-name>"); } finally { await client.close(); } } run().catch(console.dir);
Para executar o aplicativo de amostra, use o seguinte comando.
node drop-index.js
Observação
O método dropSearchIndex
não retorna uma saída. Você pode utilizar a interface do usuário do Atlas para visualizar o status do índice.
Para usar o driver Python para excluir seu índice do Atlas Search , chame o método drop_search_index()
na sua coleção.
Exemplo
Copie o seguinte exemplo de código no arquivo.
O aplicativo de amostra a seguir passa um nome de índice do Atlas Search para o método drop_search_index()
para excluir o índice.
from pymongo.mongo_client import MongoClient def delete_index(): # Connect to your Atlas deployment uri = "<connectionString>" client = MongoClient(uri) # Access your database and collection database = client["<databaseName>"] collection = database["<collectionName>"] # Delete your search index collection.drop_search_index("<indexName>")
Especifique os seguintes valores e salve o arquivo.
Sua connection string do Atlas. Para saber mais, consulte Conectar via Drivers.
O banco de dados e a coleção para os quais você deseja excluir um índice.
O nome do índice que você deseja excluir.
Estimar o tamanho de seu índice
O processo mongot
armazena os campos indexados e o campo _id
no disco, então você pode querer ajustar o tamanho do seu índice antes de construí-lo. Você pode estimar o tamanho do seu índice completo do Atlas Search criando um índice em um subconjunto da sua coleção e dimensionando o tamanho do índice de dados de amostra com base no tamanho total dos seus dados usando a seguinte fórmula:
estimated-index-size = ( subset-data-index-size / subset-data-size ) x total-collection-data-size
Por exemplo, se você quiser estimar o tamanho de um índice para a collection movies
no banco de dados sample_mflix
, execute as seguintes etapas em mongosh
:
Execute
$sample
para criar uma nova coleção chamadasample_data
usando uma amostra aleatória dos seus dados:use sample_mflix db.movies.aggregate([ { $sample: { size: 10 } }, { $out: "sample_data" } ]) [ { _id: ObjectId('573a13bbf29313caabd53f9c'), plot: "Three years ago, in real-life, Hama Ali, a charismatic actor from Iraq famous locally for his performance as Iraq's version of Superman, met Ayca on a film-set. He and Ayca, a fiery actress...", genres: [ 'Drama', 'Romance', 'War' ], runtime: 93, cast: [ 'Ayèa Damgaci', 'Hama Ali Kahn', 'Cengiz Bozkurt', 'Nesrin Cavadzade' ], num_mflix_comments: 1, poster: 'https://m.media-amazon.com/images/M/MV5BMjA1OTI1MjI4OV5BMl5BanBnXkFtZTgwODk1MTA2MDE@._V1_SY1000_SX677_AL_.jpg', title: 'Gitmek: My Marlon and Brando', fullplot: "Three years ago, in real-life, Hama Ali, a charismatic actor from Iraq famous locally for his performance as Iraq's version of Superman, met Ayca on a film-set. He and Ayca, a fiery actress from Turkey, had a passionate love affair before returning to their respective homes. From his Kurdish village, Hama Ali sends Ayca video love letters which he has filmed on his handycam. She watches them from her sofa in Istanbul, with her cat for company. The video love letters capture the hellish violence engulfing Iraq, the goats and uncles populating his rural area, and also his tender affection towards her. Feeling suffocated by her own city and angered by the indifference towards the war that surrounds her, Ayca decides to make the journey eastwards to Iraq to be reunited with her lover. GITMEK, a dramatic feature film, is based on the true story of Ayca's departure from Istanbul and her extraordinary journey to the Iraqi border. At a time when many people were fleeing from East to West in search of safety, Ayca makes the opposite journey, in search of love. She is helped by immigrant artists who live in the slums of Istanbul and the mothers of long distance truck drivers who she meets at various border towns. The journey takes her through breathtaking landscapes, strange encounters and terrifying times.", languages: [ 'English', 'Kurdish', 'Turkish' ], released: ISODate('2008-11-14T00:00:00.000Z'), directors: [ 'Huseyin Karabey' ], writers: [ 'Ayèa Damgaci', 'Huseyin Karabey' ], awards: { wins: 12, nominations: 4, text: '12 wins & 4 nominations.' }, lastupdated: '2015-07-04 00:20:59.083000000', year: 2008, imdb: { rating: 6.6, votes: 628, id: 920460 }, countries: [ 'Turkey' ], type: 'movie', tomatoes: { viewer: { rating: 3.7, numReviews: 181, meter: 79 }, lastUpdated: ISODate('2015-07-16T18:10:38.000Z') } }, { _id: ObjectId('573a139af29313caabcefb6a'), plot: '48 hours of intersecting lives and crimes in Los Angeles.', genres: [ 'Comedy', 'Crime', 'Drama' ], runtime: 104, rated: 'R', cast: [ 'Danny Aiello', 'Greg Cruttwell', 'Jeff Daniels', 'Teri Hatcher' ], num_mflix_comments: 1, poster: 'https://m.media-amazon.com/images/M/MV5BZDI0ZmFmYTgtMTQ5OS00MTVmLTgwNWYtNzIyY2Y5NjYxNzgyXkEyXkFqcGdeQXVyNzc5MjA3OA@@._V1_SY1000_SX677_AL_.jpg', title: '2 Days in the Valley', fullplot: 'John Herzfeld deftly welds together a multitude of subplots-- a loser hitman and a cool assassin involved in an insurance scam; a washed-up director, turned suicidal, if only he had someone to care for his beloved dog; a snooty art dealer, wracked by kidney stones, cared for by his devoted assistant; a grungy deranged vice cop, now partnered with a fresh-faced rookie; and two beautiful and jealous women entangled in their deadly scheme--into a spoof of the crime thriller genre.', languages: [ 'English', 'Vietnamese' ], released: ISODate('1996-09-27T00:00:00.000Z'), directors: [ 'John Herzfeld' ], writers: [ 'John Herzfeld' ], awards: { wins: 0, nominations: 1, text: '1 nomination.' }, lastupdated: '2015-09-11 00:42:22.520000000', year: 1996, imdb: { rating: 6.5, votes: 15019, id: 115438 }, countries: [ 'USA' ], type: 'movie', tomatoes: { viewer: { rating: 3, numReviews: 14630, meter: 55 }, dvd: ISODate('2001-08-07T00:00:00.000Z'), critic: { rating: 6, numReviews: 53, meter: 60 }, lastUpdated: ISODate('2015-08-19T18:25:36.000Z'), consensus: 'A labyrinthine thriller with a host of memorable characters, 2 Days in the Valley is an uneven but intriguing thriller/black comedy.', rotten: 21, production: 'HBO Video', fresh: 32 } }, { _id: ObjectId('573a13bdf29313caabd5943e'), fullplot: "When Emily Parris exposes a secret society of teenage girls who have slipped out of the world of social media and into another world they've discovered in the woods at night. When she accuses the girls of committing sexually deviant activities, Emily sends the small American town into a atmosphere of hysteria and the national media spotlight. The mystery deepens when each of the accused girls upholds a vow of silence.", imdb: { rating: 6.2, votes: 861, id: 1015471 }, year: 2014, plot: "When a teenage girl says she's the victim of a secret network called The Sisterhood of Night, a quiet suburban town becomes the backdrop for a modern-day Salem witch trial.", genres: [ 'Drama', 'Mystery', 'Thriller' ], rated: 'PG-13', metacritic: 60, title: 'The Sisterhood of Night', lastupdated: '2015-09-10 17:22:16.113000000', languages: [ 'English' ], writers: [ 'Marilyn Fu (screenplay)', 'Steven Millhauser (short story)' ], type: 'movie', tomatoes: { website: 'http://www.thesisterhoodofnight-movie.com/', viewer: { rating: 3.6, numReviews: 382, meter: 65 }, dvd: ISODate('2015-06-09T00:00:00.000Z'), critic: { rating: 6.6, numReviews: 19, meter: 79 }, boxOffice: '$5.3k', rotten: 4, production: 'Cine Mosaic', lastUpdated: ISODate('2015-09-13T17:24:37.000Z'), fresh: 15 }, poster: 'https://m.media-amazon.com/images/M/MV5BODg3MjE0MDM4N15BMl5BanBnXkFtZTgwOTY0MjE5NDE@._V1_SY1000_SX677_AL_.jpg', num_mflix_comments: 1, released: ISODate('2014-10-18T00:00:00.000Z'), awards: { wins: 2, nominations: 3, text: '2 wins & 3 nominations.' }, countries: [ 'USA' ], cast: [ 'Georgie Henley', 'Kara Hayward', 'Willa Cuthrell', 'Olivia DeJonge' ], directors: [ 'Caryn Waechter' ], runtime: 104 }, { _id: ObjectId('573a13c4f29313caabd6d7bf'), plot: 'A film producer struggles with suicidal despair.', genres: [ 'Drama' ], runtime: 110, metacritic: 76, cast: [ 'Louis-Do de Lencquesaing', 'Chiara Caselli', 'Alice de Lencquesaing', 'Alice Gautier' ], num_mflix_comments: 0, poster: 'https://m.media-amazon.com/images/M/MV5BMTUxODczODA2NV5BMl5BanBnXkFtZTcwNzExMjQ1Mw@@._V1_SY1000_SX677_AL_.jpg', title: 'Father of My Children', fullplot: "In the first half, Gregoire, a movie producer of great charm, owner of Moon Films, plays with his younger daughters, talks with his wife and his eldest daughter, and keeps his studio going while one project hemorrhages money and creditors circle. In the second half, Sylvia, his Italian wife, tries to hold the family together as she looks fully into Moon Films' troubles. She meets with a banker, a temperamental Swede, Russian TV magnates, a film lab exec, and Moon's lawyer. Clèmence, the oldest daughter, goes on her own search. Debt can crush; how does a family pick up the pieces?", languages: [ 'French' ], released: ISODate('2009-12-16T00:00:00.000Z'), directors: [ 'Mia Hansen-Lève' ], writers: [ 'Mia Hansen-Lève (screenplay)' ], awards: { wins: 2, nominations: 3, text: '2 wins & 3 nominations.' }, lastupdated: '2015-09-02 00:01:22.897000000', year: 2009, imdb: { rating: 6.7, votes: 1820, id: 1356928 }, countries: [ 'France', 'Germany', 'Belgium' ], type: 'movie', tomatoes: { website: 'http://www.filmsdulosange.fr/fr/fr_peredemesenfants.html', viewer: { rating: 3.3, numReviews: 1232, meter: 60 }, dvd: ISODate('2010-06-21T00:00:00.000Z'), critic: { rating: 7.4, numReviews: 55, meter: 91 }, lastUpdated: ISODate('2015-09-11T18:38:12.000Z'), consensus: 'A tragedy gracefully lifted by tender empathy and moments of joy, Father of My Children is a quiet triumph for writer-director Mia Hansen-Love.', rotten: 5, production: 'IFC Films', fresh: 50 } }, { _id: ObjectId('573a13a5f29313caabd15cc1'), plot: 'After a 13-year imprisonment in Hong Kong, a kickboxer challenges the current champion in order to restore his honor.', genres: [ 'Drama', 'Romance', 'Sport' ], runtime: 105, cast: [ 'Andy Lau', 'Takako Tokiwa', 'Inthira Charoenpura', 'Apichaya Thanatthanapong' ], title: 'Ah Fu', lastupdated: '2015-09-14 12:56:13.823000000', languages: [ 'Cantonese' ], released: ISODate('2000-11-21T00:00:00.000Z'), directors: [ 'Daniel Lee' ], writers: [ 'Chi-Sing Cheung', 'Daniel Lee' ], awards: { wins: 1, nominations: 3, text: '1 win & 3 nominations.' }, year: 2000, imdb: { rating: 6.6, votes: 350, id: 277558 }, countries: [ 'Hong Kong' ], type: 'movie', tomatoes: { viewer: { rating: 3.3, numReviews: 644, meter: 57 }, lastUpdated: ISODate('2015-04-25T18:41:33.000Z') }, num_mflix_comments: 0 }, { _id: ObjectId('573a13bef29313caabd5ce2b'), plot: 'Johann Sebastian Bach llega con su familia a Leipzig para ocupar el puesto de cantor en la Escuela de Santo Tomès...', genres: [ 'Musical' ], runtime: 102, metacritic: 70, cast: [ 'Christian Atanasiu', 'Fèodor Atkine', 'George-Christoph Biller', 'Christian Brembeck' ], title: 'The Silence Before Bach', lastupdated: '2015-05-25 00:50:52.210000000', languages: [ 'Spanish', 'German', 'Catalan' ], released: ISODate('2007-12-21T00:00:00.000Z'), directors: [ 'Pere Portabella' ], writers: [ 'Xavier Albertè', 'Pere Portabella', 'Carles Santos' ], awards: { wins: 3, nominations: 3, text: '3 wins & 3 nominations.' }, year: 2007, imdb: { rating: 6.8, votes: 329, id: 1079450 }, countries: [ 'Spain' ], type: 'movie', tomatoes: { website: 'http://www.pereportabella.com/eng/fla/die/home_eng.html', viewer: { rating: 3.5, numReviews: 391, meter: 64 }, critic: { rating: 6.6, numReviews: 16, meter: 81 }, lastUpdated: ISODate('2015-08-11T19:15:49.000Z'), rotten: 3, production: 'Film Forum', fresh: 13 }, num_mflix_comments: 0 }, { _id: ObjectId('573a13ccf29313caabd83260'), plot: 'A woman subject to mental, physical, and sexual abuse on a remote island seeks a way out.', genres: [ 'Crime', 'Drama', 'Horror' ], runtime: 115, cast: [ 'Yeong-hie Seo', 'Seong-won Ji', 'Min-ho Hwang', 'Min Je' ], num_mflix_comments: 0, poster: 'https://m.media-amazon.com/images/M/MV5BMjAyNDEwMDgzMl5BMl5BanBnXkFtZTcwNzMyMTYwNQ@@._V1_SY1000_SX677_AL_.jpg', title: 'Bedevilled', fullplot: "Hae-won is a beautiful single woman in her thirties who works at a bank in the Seoul city. She leads a busy life until she becomes a witness to an attempted murder case, and at the same time, things get complicated at work. When things get out of hand she is forced to take a vacation so she heads for 'Moodo', a small undeveloped island, where she had once visited to see her grandparents. And where she had befriended a girl named Bok-nam who stills writes to Hae-won asking her to visit despite the fact that Hae-won never bothered to reply. Upon arriving at the island, Hae-won is shocked to see everyone treating Bok-nam like a slave. As practically the only young woman on the island, she is a plaything for all the men and a free laborer for the women. Sick of all the inhumane treatment, Bok-nam had tried to escape the island several times in the past but had failed each time. She begs Hae-won to help her escape the place, but Hae-won remains indifferent not wanting to be involved in complicated situations. When Bok-nam realizes that her own daughter will follow her footsteps, she tries to escape the island with her daughter.", languages: [ 'Korean' ], released: ISODate('2010-09-02T00:00:00.000Z'), directors: [ 'Cheol-soo Jang' ], writers: [ 'Kwang-young Choi' ], awards: { wins: 10, nominations: 5, text: '10 wins & 5 nominations.' }, lastupdated: '2015-09-01 01:18:02.960000000', year: 2010, imdb: { rating: 7.3, votes: 7983, id: 1646959 }, countries: [ 'South Korea' ], type: 'movie' }, { _id: ObjectId('573a13c7f29313caabd746fe'), plot: 'A Californian family inherits a castle in Romania. This is especially exciting to the son, who is obsessed with monsters. And he is not disappointed.', genres: [ 'Comedy', 'Family' ], runtime: 83, rated: 'TV-G', cast: [ 'Victoria Justice', 'Chase Ellison', 'Anna Galvin', 'Matt Winston' ], num_mflix_comments: 0, poster: 'https://m.media-amazon.com/images/M/MV5BMjU1MmJlMTctY2FiMC00MmU1LWI5NmYtMDc5OWM0NjEzMmI2XkEyXkFqcGdeQXVyNDgyODgxNjE@._V1_SY1000_SX677_AL_.jpg', title: 'The Boy Who Cried Werewolf', fullplot: 'A Californian family inherits a castle in Romania. This is especially exciting to the son, who is obsessed with monsters. And he is not disappointed.', languages: [ 'English' ], released: ISODate('2010-10-22T00:00:00.000Z'), directors: [ 'Eric Bross' ], writers: [ 'Art Edler Brown', 'Douglas Sloan' ], awards: { wins: 1, nominations: 2, text: '1 win & 2 nominations.' }, lastupdated: '2015-08-20 00:01:59.673000000', year: 2010, imdb: { rating: 6.3, votes: 1582, id: 1451423 }, countries: [ 'USA', 'Canada' ], type: 'movie', tomatoes: { viewer: { rating: 3.7, numReviews: 762, meter: 66 }, lastUpdated: ISODate('2015-09-12T17:30:20.000Z') } }, { _id: ObjectId('573a13b4f29313caabd3f473'), genres: [ 'Documentary' ], runtime: 85, title: 'Zero Degrees of Separation', countries: [ 'Canada' ], lastupdated: '2015-08-09 00:30:38.977000000', languages: [ 'Arabic', 'English', 'Hebrew' ], released: ISODate('2005-06-22T00:00:00.000Z'), directors: [ 'Elle Flanders' ], writers: [ 'Elle Flanders' ], awards: { wins: 1, nominations: 0, text: '1 win.' }, year: 2005, imdb: { rating: 6.6, votes: 90, id: 454990 }, type: 'movie', tomatoes: { viewer: { rating: 3.5, numReviews: 5, meter: 100 }, fresh: 1, critic: { numReviews: 2 }, rotten: 1, lastUpdated: ISODate('2015-01-04T23:25:58.000Z') }, num_mflix_comments: 0 }, { _id: ObjectId('573a13bff29313caabd5f070'), plot: 'This hilarious genre-bending comedy follows Gary Brewer, along with girlfriend Holly Brewer (no relation), and best friend Trevor Morehouse as Gary quests to reign supreme at the 2006 Rock, Paper, Scissors World Championships.', genres: [ 'Comedy' ], runtime: 85, cast: [ 'Tim Doiron', 'April Mullen', 'Ryan Tilley', 'Peter Pasyk' ], num_mflix_comments: 0, poster: 'https://m.media-amazon.com/images/M/MV5BMTI5MzIwMjA2Ml5BMl5BanBnXkFtZTcwOTcyOTA4MQ@@._V1_SY1000_SX677_AL_.jpg', title: 'Rock, Paper, Scissors: The Way of the Tosser', fullplot: 'This hilarious genre-bending comedy follows Gary Brewer, along with girlfriend Holly Brewer (no relation), and best friend Trevor Morehouse as Gary quests to reign supreme at the 2006 Rock, Paper, Scissors World Championships.', languages: [ 'English' ], released: ISODate('2007-07-06T00:00:00.000Z'), directors: [ 'Tim Doiron', 'April Mullen' ], writers: [ 'Tim Doiron (creator)', 'April Mullen (creator)', 'Tim Doiron' ], awards: { wins: 2, nominations: 0, text: '2 wins.' }, lastupdated: '2015-08-12 00:01:33.813000000', year: 2007, imdb: { rating: 6.2, votes: 316, id: 1121964 }, countries: [ 'Canada' ], type: 'movie' } ] Crie um índice de pesquisa na collection com os dados de amostra usando a definição de índice que você deseja usar para a collection completa:
db.sample_data.createSearchIndex( "sample-index", { mappings: { dynamic: true } } ) sample-index Dimensione o tamanho dos dados de amostra pelo tamanho total da collection. Por exemplo, se o tamanho do índice
sample-index
for 44.88, de acordo com a página Visão Geral do Índice da UI do Atlas, então você poderá usar os seguintes comandos para calcular o tamanho total do índice:let sampleSize = db.sample_data.totalSize() let totalSize = db.movies.totalSize() let totalIndexSize = ( 44.88 / sampleSize ) * totalSize; totalIndexSize 45864.28
Saiba mais
Para saber como definir um índice do Atlas Search para atender às suas necessidades de query do Atlas Search, consulte Definir sua query.
Para aprender como criar um índice do Atlas Search, consulte Criar um índice do Atlas Search.
Para saber mais sobre as configurações de índice do Atlas Search descritas neste tutorial, consulte as seguintes páginas de referência:
Defina campos de origem armazenados em seu índice do Atlas Search
Defina Mapeamentos Sinônimos em seu Índice de Busca no Atlas
Para obter experiência prática na criação de índices do Atlas Search para os conjuntos de dados de exemplo e na execução de queries do Atlas Search nos dados indexados, experimente o Atlas Search Quick Start.
Continuar aprendendo
Aprenda assistindo
Acompanhe este tutorial em vídeo que demonstra como criar índices de Atlas Search de várias complexidades.
Duração: 15 Minutos