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

visão geral do Atlas Search

Nesta página

  • Fundamentos do Atlas Search
  • Indexação
  • Tokenização
  • Consultando
  • Pontuação
  • Disponibilidade do Atlas Search
  • arquitetura do atlas search
  • Arquitetura de origem armazenada
  • Arquitetura de Nós de Pesquisa
  • Índices de pesquisa do Atlas
  • Queries do Atlas Search
  • Custo dos Nós de Pesquisa
  • Próximos passos

O Atlas Search do MongoDB permite indexação de texto refinada e query de dados em seu cluster Atlas. Ele permite a funcionalidade de pesquisa avançada para seus aplicativos sem nenhum gerenciamento adicional ou sistema de pesquisa separado junto com seu banco de dados. A Pesquisa do Atlas fornece opções para vários tipos de analisadores de texto, uma linguagem de query avançada que usa estágios de pipeline de agregação, como $search e $searchMeta, em conjunto com outros estágios de pipeline de agregação do MongoDB e classificação de resultados baseada em pontuação.

Dica

Experimente rapidamente o Atlas Search sem precisar de uma conta, cluster ou coleção do Atlas, com o Atlas Search Playground. Para saber mais, consulte a documentação.

Os conceitos a seguir formam a base do Atlas Search e são essenciais para otimizar seu aplicativo.

No contexto da pesquisa, um índice é uma estrutura de dados que categoriza os dados em um formato facilmente pesquisável. Os índices de pesquisa permitem a recuperação mais rápida de documentos que contêm um determinado termo sem a necessidade de digitalizar toda a coleção. Embora os índices Atlas Search e os índices MongoDB tornem a recuperação de dados mais rápida, observe que eles não são iguais. Como o índice no final de um livro, um índice de pesquisa é um mapeamento entre os termos e os documentos que contêm esses termos. Os índices de pesquisa também contêm outros metadados relevantes, como as posições dos termos em documentos.

A criação de pelo menos um índice de pesquisa geralmente é necessária em qualquer aplicativo de pesquisa. Para mais informações, consulte Índices de Atlas Search.

Ao criar um índice de pesquisa, os dados devem primeiro ser transformados em uma sequência de tokens ou termos. Um analyzer facilita esse processo por meio de etapas que incluem:

  • Tokenização: Quebrando palavras em uma string em tokens indexáveis. Por exemplo, dividindo uma frase por espaço em branco e pontuação.

  • Normalização: organizando dados para que sejam representados de forma consistente e mais fáceis de analisar. Por exemplo, transformar texto em minúsculas ou remover palavras indesejadas chamadas palavras vazias.

  • Stemming: Reduzir palavras à sua forma raiz . Por exemplo, ignorar sufixos, prefixos e formas de palavras no plural.

As especificidades da tokenização são específicas do idioma e podem exigir a realização de opções adicionais. Qual analisador usar depende dos seus dados e aplicativo. Para obter mais informações, consulte Processar dados com analisadores.

As queries de pesquisa consultam o índice para retornar um conjunto de resultados. As queries de pesquisa são diferentes das queries de banco de dados tradicionais, pois destinam-se a atender a necessidades de informações mais gerais. Quando uma query de banco de dados deve seguir uma sintaxe rigorosa, as queries de pesquisa podem ser para uma correspondência simples de texto, mas também podem procurar frases, números ou intervalos de datas semelhantes, ou usar expressões regulares ou curingas.

Para mais informações, consulte Queries de pesquisa do Atlas.

Cada documento recebe uma pontuação de relevância que permite que os resultados da query sejam devolvidos da maior relevância para a menor. Na forma mais simples de pontuação, os documentos têm uma pontuação mais alta se o query aparecer com frequência em um documento e mais baixa se o query aparecer em muitos documentos da collection. A pontuação também pode ser personalizada. Personalizar a pesquisa para um domínio específico geralmente significa personalizar a pontuação padrão baseada em relevância aumentando, decaindo ou modificando-a de outras maneiras.

Para obter mais informações, consulte Documentos de pontuação.

O Atlas Search está disponível apenas nas instâncias do Atlas que executam o MongoDB 4.2 ou versões superiores. Para determinados recursos, o Atlas Search pode exigir uma versão específica do MongoDB. A tabela seguinte lista os recursos de Atlas Search que exigem versões específicas do MongoDB.

Atlas Search Feature
Versão do MongoDB para recurso
facetas
5.0.4+, 6.0+, 7.0+
6.0 ou mais, 7.0 ou mais
5.0.6+, 6.0+, 7.0+
5.0 ou mais
6.0 ou mais, 7.0 ou mais
6.0 ou mais, 7.0 ou mais
5,0+, 6,0+, 7,0+
6.0 ou mais, 7.0 ou mais
6.0 ou mais, 7.0 ou mais
6.0 ou mais, 7.0 ou mais
6.0 ou mais, 7.0 ou mais
$search searchAfter e searchBefore opções
6.0.13+, 7.0.5+

Atlas Search não é suportada para coleções de séries temporais .

O mongot processo Atlas Search utiliza Apache Lucene e é executado juntamente com mongod em cada nó do Atlas cluster. O mongot processo do :

  1. Cria índices de Atlas Search com base nas regras na index definition para a collection.

  2. Monitora change streams para o estado atual dos documentos e alterações de índice para as collections para as quais você definiu Atlas Search indexes.

  3. Processa queries do Atlas Search e retorna documentos correspondentes.

arquitetura do atlas search

Se você definir campos de origem armazenados no índice da Atlas Search, o processo de mongot armazenará os campos especificados e, para documentos correspondentes, retornará os campos armazenados diretamente de mongot em vez de fazer uma pesquisa completa de documentos no banco de dados se você especificar a opção returnStoredSource em sua query.

Arquitetura de origem armazenada do Atlas Search

Para cluster do Atlas dedicados (M10 ou superior) fragmentados e não fragmentados no AWS ou GCP, você pode implantar nós de pesquisa separados que executam somente o processo do mongot para isolamento do volume de trabalho. O Atlas implementa nós de pesquisa com cada cluster ou com cada shard no cluster. Por exemplo, se você implantar 2 nós de pesquisa para um cluster com 3 shards, o Atlas implantará 6 nós de pesquisa, 2 por shard.

A distribuição de nós de pesquisa separados oferece os seguintes benefícios:

  • Dimensiona o armazenamento independente do Cluster MongoDB.

  • Dimensiona a carga de query independentemente do MongoDB.

Quando você distribui nós de pesquisa separados, os processos mongot são executados em nós de pesquisa separados que você pode configurar independentemente.

Arquitetura de nós de pesquisa separados do Atlas Search

Você pode configurar os nós de pesquisa para executar o processo mongot separadamente dos nós da base de dados que executam o processo mongod no cluster do Atlas. Você também pode configurar o número de nós de pesquisa e a quantidade de recursos provisionados para cada nó de pesquisa.

Você pode configurar pesquisar Nodes apenas para clusters da AWS ou do GCP de região única. Não é possível distribuir pesquisar Nodes separadamente para clusters serverless ou multinuvem . Para saber mais sobre como implantar pesquisar Nodes separadamente, consulte pesquisar Nodes para isolamento de volume de trabalho. Para implementar os pesquisar Nodes a partir da UI ou da API, consulte Criar um cluster.

Ao implantar nós de pesquisa separados, o Atlas atribui automaticamente um mongod para cada mongot. O mongot comunica com o mongod para ouvir e sincronizar as alterações de índice para os índices que armazena.

Se você excluir todos os nós de pesquisa em seu cluster, haverá uma breve interrupção no processamento dos resultados da query de pesquisa. Para saber mais, consulte Modificar um cluster. Se você excluir seu cluster do Atlas, o Atlas pausará e então excluirá todas as implantações do Atlas Search associadas (mongot processos).

Observação

Os SSDslocais usados para pesquisar exigem uma sobrecarga de armazenamento 20% para suportar operações de índice.

O índice do Atlas Search é uma estrutura de dados que categoriza os dados em um formato facilmente pesquisável. É um mapeamento entre os termos e os documentos que contêm esses termos. Os índices do Atlas Search permitem a recuperação mais rápida de documentos usando determinados identificadores. Você deve configurar um índice do Atlas Search para fazer query em dados em seu cluster Atlas usando o Atlas Search.

Você pode criar um índice de Pesquisa do Atlas em um único campo ou em múltiplos campos. Recomendamos que você indexe os campos que usa regularmente para classificar ou filtrar seus dados para recuperar rapidamente os documentos que contêm os dados relevantes em tempo de query.

Você pode especificar os campos para indexar utilizando os seguintes métodos:

  • Mapeamentos dinâmicos, que permitem que o Atlas Search indexe automaticamente todos os campos dos tipos suportados em cada documento. Isso ocupa espaço em disco e pode afetar negativamente o desempenho do cluster.

  • Mapeamentos estáticos, que permitem que você identifique seletivamente os campos para indexar. Se os campos contiverem dados polimórficos, a Atlas Search indexará apenas os documentos que correspondem ao mapeamento na definição de índice e ignorará os documentos que contêm valores que não correspondem ao mapeamento especificado na definição de índice para os campos.

Embora os dados armazenados no Atlas Search não sejam uma cópia idêntica dos dados da collection no seu cluster do Atlas, os índices do Atlas Search ainda ocupam algum espaço em disco e memória. Se você habilitar a opção store para campos que contêm valores de string ou se você configurar os campos de origem armazenados no seu índice, o Atlas Search armazenará uma cópia idêntica dos campos especificados no disco, que podem ocupar espaço em disco.

O Atlas Search oferece analisadores integrados para a criação de termos indexáveis que corrigem as diferenças de pontuação, capitalização, palavras vazias e muito mais. Os analisadores aplicam regras de análise e linguagem à query. Você também pode criar um analisador personalizado usando filtros de caracteres, tokenizadores e filtros de token integrados disponíveis ee integrados. Para saber mais sobre os analisadores internos e personalizados, consulte Process Data with analyzers.

Para saber mais sobre o suporte da Atlas Search para outros tipos de dados, consulte Tipos de dados. O processo mongot armazena os campos indexados e o campo _id no disco por índice para as coleções no cluster.

Se você alterar um índice existente, o Atlas Search reconstrói o índice sem tempo de inatividade. Isso permite que você continue usando o índice antigo para queries novas e existentes até que a recriação do índice seja concluída. Se você distribuiu nós de pesquisa separados, o Atlas Search também reconstrói índices para os seguintes eventos:

  • Adicionar nós de pesquisa

  • Nós de pesquisa de escala

  • Alterações mongot internas que exigem uma ressincronização de índice (como alguns recursos do Atlas Search que exigem uma atualização de índice)

Se você distribuiu nós de pesquisa separados, o Atlas distribuirá automaticamente nós de pesquisa adicionais durante a reconstrução do índice para manter o índice antigo atualizado e disponível para consultas enquanto o novo índice é criado.

Se você fizer alterações na collection para a qual definiu os índices da Atlas Search, os dados mais recentes podem não estar disponíveis imediatamente para query. No entanto, o mongot monitora os fluxos de alterações, o que permite atualizar cópias armazenadas de dados, e os índices de Atlas Search são eventualmente consistentes.

Observação

Para Nós de Pesquisa Dedicados

Adicionar e ajustar shards aciona uma reconstrução do índice do Atlas Search. Durante esta reconstrução do índice, o índice pode não ter os dados mais atuais. Portanto, as queries de dados nesses shards podem falhar ou retornar resultados incorretos.

Se você refragmentar uma collection com índices do Atlas Search, os índices do Atlas Search na collection ficarão indisponíveis quando a operação de refragmentação estiver completa. Você deve reconstruir seus índices do Atlas Search assim que a operação de refragmentação for concluída.

Observação

O Atlas Search não aceita a criptografia de índices do Atlas Search com chaves de criptografia usando o Gerenciamento de chave de cliente na UI do Atlas.

Dica

Veja também: Aprenda Assistindo

Assista a este vídeo para uma visão geral dos índices de Pesquisa Atlas. Neste vídeo, você pode aprender mais sobre analisadores e tipo de campo autocomplete do Atlas Search.

Duração: 8 Minutos

Após configurar um índice do Atlas Search para uma coleção, você pode executar queries em relação aos campos indexados.

As queries do Atlas Search assumem a forma de um aggregation pipeline stage. O Atlas Search oferece os estágios $search e $searchMeta , ambos devem ser o primeiro estágio na pipeline da query. Esses estágios podem ser usados em conjunto com outros estágios de pipeline de agregação em sua pipeline da query. Para saber mais sobre esses estágios do pipeline, consulte Escolher o estágio do aggregation pipeline.

A Atlas Search também fornece query e collectors que você pode usar dentro dos estágios de pipeline $search $searchMetade agregação. Os operadores de Pesquisa do Atlas permitem a você localizar e recuperar dados correspondentes da coleção no seu agrupamento do Atlas. O coletor retorna um documento representando os resultados dos metadados de pesquisa.

Você pode usar os operadores da query para fazer query em termos, frases, formas e pontos geográficos, valores numéricos, documentos semelhantes, termos sinônimos e muito mais. Você também pode pesquisar utilizando expressões regex e asteriscos. O operador composto do Atlas Search permite que você combine vários operadores dentro do seu $search estágio para realizar uma pesquisa complexa e filtrar dados com base no que deve, não deve ou deve estar presente nos documentos retornados pelo Atlas Search. Você pode usar o operador composto para também corresponder ou filtrar documentos no próprio estágio $search . Executar $match após $search tem menos desempenho do que executar $search com o operador composto .

Para saber mais sobre a sintaxe, as opções e o uso dos operadores da Atlas Search, consulte Usar operadores e coletores em queries do Atlas Search.

Quando você executa uma query, o Atlas Search utiliza a preferência de leitura configurada para identificar o nó no qual executar a query. A query primeiro vai para o processo do mongod , que é para um cluster de conjunto de mongos ou para um cluster fragmentado. Para clusters fragmentados, os dados do cluster são mongod em instâncias e cada mongot sobre os dados no mesmo mongod apenas. Portanto, você não pode executar consultas que tenham como alvo um fragmento específico. mongos direciona as queries para todos os fragmentos, fazendo estas dispersar e reunir queries. Se você usar zonas para distribuir uma coleção fragmentada em um subconjunto dos shards no cluster, o Atlas Search roteará a consulta para a zona que contém os fragmentos da coleção que você está consultando e executará suas $search queries apenas nos fragmentos onde a coleção está localizada.

O processo do MongoDB roteia a query para mongot no mesmo nó. O Atlas Search realiza a pesquisa e a pontuação e retorna os IDs dos documentos e outros metadados da pesquisa dos resultados correspondentes para mongod. O mongod então realiza uma pesquisa completa do documento implicitamente para os resultados correspondentes e retorna os resultados ao cliente.

Observação

Para Nós de Pesquisa Dedicados

Quando você executa uma query, a query primeiro vai para o processo MongoDB com base na preferência de leitura. O processo mongod encaminha a query de pesquisa por meio de um balancer de carga no mesmo nó, que distribui as solicitações entre todos os processos mongot. O Atlas Search mongot executa a pesquisa e pontuação e retorna os resultados correspondentes para mongod, que mongod então retorna ao cliente. Se você usar a opção $search concurrent em sua query, o Atlas Search ativará o paralelismo intraquery. Para saber mais, consulte Parallelize Query Execution Across Segments.

O Atlas Search associa uma pontuação baseada em relevância a cada documento no conjunto de resultados. A pontuação baseada em relevância permite que Atlas Search devolva documentos na ordem da pontuação mais alta para a mais baixa. Atlas Search pontua os documentos mais alto se o query aparecer com frequência em um documento e mais baixo se o query aparecer em muitos documentos da collection. O Atlas Search também oferece suporte à personalização da pontuação padrão baseada em relevância por meio de aumento, decadência ou outras opções de modificação. Para saber mais sobre como personalizar as pontuações resultantes, consulte Classificar os documentos nos resultados.

Dica

Veja também: Aprenda Assistindo

Assista a este vídeo para ter uma visão geral de pesquisa e rastreamento de suas queries com o Atlas Search. Neste vídeo, você pode aprender mais sobre operadores do Atlas Search e como os documentos de o Atlas Search pontua documentos nos resultados.

Duração: 15 Minutos

MongoDB suporta pesquisar nós separados apenas em clusters AWS ou GCP dedicados (M10 ou superior) de região única. Os pesquisar nós são distribuídos em instâncias NVMe com computação de uso intensivo. Você deve distribuir um mínimo de dois nós. Você será cobrado diariamente pelo uso de recursos por hora por nó. Para saber mais, consulte Custos de pesquisar nós.

Para obter experiência prática na criação de indexes do Atlas Search e na execução de querys do Atlas Search nos conjuntos de dados de amostra, experimente os tutoriais nas páginas a seguir:

Você prefere aprender assistindo?

Assista a uma visão geral do Atlas e Atlas Search e comece a configurar o Atlas Search para seus dados. O vídeo demonstra como carregar dados de exemplo no cluster, criar um índice de Atlas Search e executar uma query de exemplo usando Search Tester e Data Explorer.

Duração: 10 Minutos

← O que é o MongoDB Atlas Search?