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

Solucionar erros do Atlas Search

Nesta página

  • sincronização inicial em andamento
  • mongot Processo não instalado ou em execução
  • Conjunto de resultados vazio
  • PlanExecutor Erro
  • Failed to Execute search Command Erro

O Atlas Search inicia o processo de sincronização inicial nos seguintes cenários:

  • Quando você cria um novo cluster ou executa determinadas atualizações em um cluster, ocorre um processo de sincronização inicial.

  • Se você adicionar fragmentos a uma collection com um Atlas Search existente, ocorrerá uma sincronização inicial nos fragmentos adicionados para esse índice.

  • Se você fragmentar uma collection que já tenha um índice de pesquisa do Atlas Search, ocorrerá uma sincronização inicial nos fragmentos onde a collection começa a existir.

O processo de sincronização inicial inclui as seguintes etapas:

  1. O mongod executa uma sincronização inicial.

  2. O mongot executa uma sincronização inicial, que reconstrói os índices de pesquisa.

Enquanto um índice de pesquisa é reconstruído, você ainda pode realizar pesquisar $search no campo indexado existente. No entanto, o Atlas Search pode retornar um erro se você executar uma query $search em um campo novo ou nó criado recentemente. Tente sua query novamente após a conclusão da sincronização inicial e o mongot reconstrói os índices. Você pode verificar o status da sincronização inicial do mongot utilizando as seguintes etapas:

1
  1. Se ainda não estiver exibido, selecione a organização que contém o projeto desejado 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 a página Clusters ainda não estiver exibida, clique em Database na barra lateral.

2

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

3
  1. Na coluna Status do índice, clique em View Status Details.

  2. Verifique o estado do índice para o nó. Durante a sincronização inicial do mongot , o status é INITIAL SYNC. Quando mongot termina de reconstruir o índice, o status é ACTIVE.

O seguinte erro é retornado se você executar query do $search quando o processo do Atlas Search mongot não estiver instalado ou executando:

MongoError: Remote error from mongot :: caused by :: Error connecting to localhost:28000.

O processo mongot é instalado somente quando o primeiro índice de pesquisa do Atlas Search é definido. Se você não tiver nenhum índice do Atlas Search em seu cluster do Atlas, crie pelo menos um índice do Atlas Search para resolver esse erro.

Dica

Veja também:

  • Revise a Syntax do índice do Atlas Search

  • criar um índice do atlas search

mongot não retorna erros, mas retorna um conjunto de resultados vazio se sua query $search :

  • Referencia um índice que não existe. Se você não especificar um índice por nome na query, o padrão do Atlas Search será um índice chamado default. Se você não tiver um índice chamado default ou se o índice que você especificou não existir, o Atlas Search não retornará um erro e retornará um conjunto de resultados vazio. Você pode especificar um índice válido por seu nome utilizando a opção index . Para saber mais, consulte as opções de estágio do pipeline de agregação do Atlas Search.

  • Especifica um campo não indexado. Se você executar uma query em um campo que não está indexado, o Atlas Search não retornará um erro e retornará um conjunto de resultados vazio. Você deve especificar somente campos indexados como valores para o parâmetro path . Você pode habilitar o mapeamento dinâmico em sua definição de índice para a collection para garantir que todos os campos dinamicamente indexáveis na collection sejam indexados automaticamente. Para saber mais, consulte mapeamento dinâmico.

  • Usa o operador text em um caminho do campo que não é indexado como um tipo string . Se um campo for indexado como um tipo de campo do Atlas Search diferente de string, como stringFacet ou autocomplete, o Atlas Search não retornará um erro e retornará um conjunto de resultados vazio. Você deve indexar o campo com valores de tipo de dadosBSON string como tipo de string para query o campo usando o operador de texto .

mongot retorna um erro PlanExecutor se sua query $search :

  • Especifica um campo indexado como um tipo de dados incorreto. Nesse caso, se você executar uma query, o Atlas Search retornará uma mensagem de erro identificando o campo que foi indexado incorretamente e seu tipo de dados correto. Por exemplo:

    PlanExecutor error during aggregation :: caused by :: Cannot facet on field "genres" because
    it was not indexed as a "stringFacet" field.

    Por exemplo, para executar queries de facets nos campos string, number ou date , crie um índice para os campos utilizando o tipo de campo correspondente do Atlas Search como stringFacet, numberFacet e dateFacet respectivamente . Para saber mais, consulte Tipos de dados com e sem suporte.

Se você distribuiu mongot para ser executado junto com mongod (ou seja, não configurou nós de pesquisa para isolamento de carga de trabalho), mongot poderá retornar esse erro se o processo mongot terminar, como durante qualquer um dos seguintes eventos:

  • Upscale de cluster

  • Failover de nó

  • mongot atualização

Se você distribuiu mongot em um nó de pesquisar dedicado, mongod usa um proxy que está ciente de cada nó de pesquisar e, portanto, mongod roteia query de pesquisa apenas para nós saudáveis onde mongot está ativo.

← Explique o tempo