Ver um índice de pesquisa do Atlas.
Nesta página
Importante
Você pode visualizar uma definição de índice de pesquisa do Atlas Search na página Index Overview . Para cada índice, a página Index Overview mostra o seguinte:
Namespace para o índice.
Analisadores de índice e pesquisa especificados na definição do índice.
Mapeamento dinâmico ou estático.
Mapeamentos de campo na definição do índice, se houver, incluindo nome do campo, tipo de dados e se o mapeamento dinâmico está ativado para o campo individual.
Esta página descreve como visualizar sua definição de índice na página Index Overview . Você também pode Editar um Atlas Search Index com o editor visual ou JSON na página Index Overview .
Acesso necessário
A tabela a seguir mostra os modos de acesso que cada papel suporta.
Função | em ação | IU do Atlas | Atlas API | API de pesquisa do Atlas | Atlas CLI |
---|---|---|---|---|---|
| Para visualizar analisadores e índices do Atlas Search. | ✓ | ✓ | ||
| Para criar e gerenciar analisadores e índices do Atlas Search e atribuir a função à sua chave de API. | ✓ | ✓ | ✓ | ✓ |
| ✓ | ✓ | |||
| Para criar entradas de lista de acesso para sua Chave de API e enviar a solicitação de um cliente que aparece na lista de acesso para sua Chave de API. | ✓ | ✓ | ||
Para criar, visualizar, editar e excluir índices do Atlas Search usando a UI ou API do Atlas. | ✓ | ✓ | ✓ |
Procedimento
Você pode recuperar seus índices do Atlas Search na UI do Atlas ou programaticamente usando o mongosh
, o Atlas CLI, a API ou um driver MongoDB compatível na linguagem de sua preferência.
Observação
Você deve ter pelo menos o papel do readAnyDatabase
ou acesso do read
ao banco de dados que contém os índices. Para saber mais, consulte Funções embutidas ou Privilégios específicos.
➤ Use o menu suspenso Selecione a linguagem para definir a linguagem do exemplo nesta seção.
Para recuperar um índice do Atlas Search por meio da API:
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"
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.
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
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 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 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 .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.
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 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.
Índices de pesquisa
Na IU do Atlas, a página Atlas Search exibe informações sobre os índices do Atlas Search para as coleções. A página exibe os seguintes detalhes 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. |
Type | Tipo de índice. O valor pode ser um dos seguintes tipos de índice:
|
Index Fields | Campos indexados. O valor é |
Status | Status do índice. 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:
|
Size | Tamanho do índice. |
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. |
Actions | Ações que você pode realizar no índice:
|
Você pode classificar os índices pelas várias colunas. Por padrão, o Atlas classifica os índices primeiro pelo nome do banco de dados e depois pelo nome da coleção. Para classificar por várias colunas, pressione Shift
e clique nos nomes das colunas na ordem em que deseja classificar várias vezes a lista de índices. O Atlas não salva sua ordem de classificação preferida quando você sai da página.
Status do índice de revisão
Para cada índice, a coluna Status mostra o estado atual do índice no nó primário do cluster. A tabela a seguir descreve os status do í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. |
Visualizar detalhes de status
A coluna Status mostra o estado atual do índice no nó primário do cluster. Você pode visualizar o status detalhado de uma das seguintes maneiras:
Clique no link View status details abaixo do status na coluna Status.
Clique no nome do índice e selecione Status Details no menu à esquerda para o índice.
Nesta página, você pode visualizar os seguintes detalhes sobre o índice:
Queries de atendimento de índice
Esta seção exibe o índice que está sendo usado para servir as queries. 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:
|
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.
Migração para nós de pesquisa
Esta seção exibe o status da migração em andamento dos índices do Atlas Search e do Atlas Vector Search para nós de pesquisa, se aplicável. Isso só é visível 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 o status do índice nos nós de pesquisa. O status pode ser um dos seguintes:
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 a usar os í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 serão automaticamente roteadas para usar os índices nos nós de pesquisa.