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

Ver um índice de pesquisa do Atlas.

Nesta página

  • Acesso necessário
  • Procedimento
  • Índices de pesquisa
  • Status do índice de revisão
  • Visualizar detalhes de status

Importante

Se você utilizar o estágio de agregação $out para modificar uma coleção com um índice do Atlas Search, deverá excluir e recriar o índice de pesquisa. Se possível, considere usar $merge em vez de $out.

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 .

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.

Project Data Access Admin ou role superior

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.

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ê pode usar o mongosh comando ou os métodos assistente do driver para recuperar índices do Atlas Search em todas as camadas do Atlas cluster. Para obter uma lista de versões de driver compatíveis, consulte Drivers do MongoDB .

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:

1

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.

2

Para recuperar todos os índices do Atlas Search para uma coleção:

1

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}"
2

Para recuperar todos os índices do Atlas Search para um cluster:

1

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"
2

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.

Dica

Veja: links relacionados

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.

Dica

Veja: links relacionados

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

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

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

    A página Clusters é exibida.

2

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

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

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

    A página Atlas Search é exibida.

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

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

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

    A página Atlas Search é exibida.

  1. Clique no nome do seu cluster.

  2. Clique na aba Atlas Search.

    A página Atlas Search é exibida.

3

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>")

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 .

1
2

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:

#include <mongoc/mongoc.h>
#include <stdlib.h>
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;
}
3
  • 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.

4
gcc -o view-index view-index.c $(pkg-config --libs --cflags libmongoc-1.0)
./view-index

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.

1
2

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.

#include <bsoncxx/json.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/search_index_view.hpp>
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;
}
3
  • 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.

4
g++ -o view-index view-index.cpp $(pkg-config --cflags --libs libmongocxx)
./view-index

Para usar o driver .NET/C# para recuperar seus índices do Atlas Search, use o método List() ou ListAsync().

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().

Program.cs
using MongoDB.Bson;
using MongoDB.Driver;
// connect to your Atlas deployment
var uri = "<connection-string>";
var client = new MongoClient(uri);
var db = client.GetDatabase("<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 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.

1
2

O seguinte aplicativo de amostra recupera todos os índices do Atlas Search em uma determinada coleção.

1import com.mongodb.client.MongoClient;
2import com.mongodb.client.MongoClients;
3import com.mongodb.client.MongoCollection;
4import com.mongodb.client.MongoCursor;
5import com.mongodb.client.MongoDatabase;
6import org.bson.Document;
7public 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}
3
  • <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.

4
javac ViewIndex.java
java ViewIndex

Para recuperar seus índices do Atlas Search por meio do Node Driver, use o método auxiliar listSearchIndexes .

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.

list-indexes.js
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.

1
2

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

4
python view-index.py

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 é dynamic se você habilitou mapeamentos dinâmicos. Para mapeamentos estáticos, a coluna mostra todos os campos indexados.

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:

  • - para índices que você pode usar para consultar a coleção.

  • X - para índices que você não pode usar para consultar coleção.

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:

  • Clique em Query para acessar o Search Tester e consultar a coleção.

  • Clique em e selecione uma das seguintes ações a serem executadas 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.

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:

  • Para um novo índice, o Atlas Search não atende às query até que a criação do índice esteja concluída.

  • Para um índice existente, você pode continuar usando o índice antigo para queries novas e existentes até que a recriação do índice seja concluída.

Pronto

O índice está pronto para uso.

Stale

O índice está obsoleto por qualquer um dos seguintes motivos:

  • A replicação foi interrompida devido à alta utilização do disco.

    O limite de pausa na replicação é 90% e o limite de retomada da replicação é 85% de utilização do disco.

  • Se a replicação parar por um longo período, o processo do Atlas Search mongot sairá do oplog.

    Esse estado geralmente ocorre quando o ponto de replicação atual não está mais disponível no oplog mongod. O Atlas reconstrói o índice se o processo mongot sair do oplog.

  • O índice atingiu o limite de dois bilhões de documentos.

  • A replicação falhou devido a um erro.

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.

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:

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.

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 Stale ou Failed, exibe o motivo pelo qual o índice está obsoleto ou por que a compilação do índice falhou.

Node Type

Tipo de nó. O valor pode ser um dos seguintes tipos:

  • Principal

  • secundário

  • Nó de pesquisa

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.

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 é dynamic se você habilitou mapeamentos dinâmicos. Para mapeamentos estáticos, a coluna mostra todos os campos indexados.

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.

Voltar

Retomar ou excluir um rascunho