Menu Docs

Solucionar erros do Atlas Search

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

    Observação

    Se você não tiver clusters, clique em Create cluster para criar um. Para aprender mais, consulte Criar um cluster.

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

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, number e date 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.