Solucionar erros do Atlas Search
Nesta página
sincronização inicial em andamento
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:
O
mongod
executa uma sincronização inicial.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:
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.
mongot
Processo não instalado ou em execução
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.
Conjunto de resultados vazio
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 chamadodefault
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çãoindex
. 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 tipostring
. Se um campo for indexado como um tipo de campo do Atlas Search diferente destring
, comostringFacet
ouautocomplete
, 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 dadosBSONstring
como tipo de string para query o campo usando o operador de texto .
PlanExecutor
Erro
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
oudate
, crie um índice para os campos utilizando o tipo de campo correspondente do Atlas Search comostringFacet
,number
edate
respectivamente . Para saber mais, consulte Tipos de dados com e sem suporte.
Failed to Execute search Command
Erro
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.