Executando verificação de segurança...
4

Projetando um Motor de Busca em Escala: Guia Completo de System Design

Resumo: Um guia prático e senior para desenhar um motor de busca em escala de internet, cobrindo crawler frontier, robots.txt, sitemaps, canonicalização, deduplicação, índice invertido, ranking, snippets, freshness, sharding, multi-região, confiabilidade, abuso, privacidade e trade-offs de entrevista.

Este artigo foi publicado por completo no meu blog, com os diagramas e exemplos práticos.
link


Um motor de busca parece simples por fora: uma caixa, uma consulta e uma lista de resultados. Por dentro, o sistema precisa descobrir a web, respeitar publishers, baixar páginas sem sobrecarregar hosts, renderizar JavaScript quando necessário, extrair texto, resolver duplicatas, construir índices comprimidos, ranquear documentos sob pressão adversarial e responder em baixa latência para usuários no mundo todo.

O problema não é "guardar HTML e fazer LIKE". O problema real é alocar crawl budget, decidir o que merece freshness, separar URL de documento, consolidar canonicals, operar shards e réplicas, controlar tail latency, combater spam e continuar servindo quando crawler, indexador ou ranker degradam.

O Google Search Central descreve busca em três estágios: crawling, indexing e serving. Para system design, precisamos abrir esses estágios em subsistemas operacionais: descoberta de URLs, frontier, robots, fetch, render, parser, dedupe, link graph, index builder, segment store, query planner, retrieval, ranking, snippets, safe search, observabilidade e controle de custo.

Este artigo desenha um sistema tipo Google Search/Bing em nível de entrevista senior. Não é clone de arquitetura proprietária. Os números são premissas plausíveis para raciocínio, não afirmações sobre empresas reais.


Análise de Requisitos

Escopo: busca web pública, documentos descobertos por links/sitemaps/feeds/submissão, serving global, resultados orgânicos, safe search e freshness seletiva. Fora do escopo principal: leilão de anúncios, busca enterprise privada, geração de respostas por IA, email pessoal, inventário fechado de ecommerce e telemetry proprietária.

Requisitos Funcionais

  1. Descobrir URLs via links, sitemaps, feeds, submissão e histórico de recrawl.
  2. Respeitar robots.txt, robots meta, noindex, canonical hints e limites por host.
  3. Baixar HTML, PDFs, imagens e formatos suportados com limites de segurança.
  4. Renderizar páginas JavaScript quando o HTML estático não basta.
  5. Extrair título, texto principal, headings, links, idioma, datas e structured data.
  6. Canonicalizar URLs e agrupar documentos duplicados ou quase duplicados.
  7. Construir link graph e sinais de qualidade.
  8. Criar índice invertido comprimido com postings posicionais e campos.
  9. Servir consultas textuais, frases, filtros, queries locais e queries frescas.
  10. Ranquear por relevância lexical, qualidade, freshness, segurança e contexto permitido.
  11. Gerar snippets, correções de digitação e sugestões.
  12. Suportar indexação incremental, rebuilds batch e rollback.

Requisitos Não-Funcionais

RequisitoMetaMotivo
Disponibilidade de busca99,99%+Busca é superfície primária
Latência de queryp50 <= 80ms, p99 <= 250msUsuário espera resposta imediata
Freshness prioritáriasegundos a minutosNotícias e incidentes envelhecem rápido
Recrawl geralhoras a semanasCrawl budget é finito
Politenessobrigatório por host/siteNão sobrecarregar publishers
Consistênciaeventual nos resultadosForte em tudo seria caro demais
SegurançaaltaConteúdo e tráfego são adversariais
Custobudget explícito por tierCrawl/ranking queimam dinheiro rápido

Premissas de Escala

ItemPremissa
URLs conhecidas300B
Documentos canônicos indexados50B
Fetches por dia10B
Queries por dia20B
Multiplicador de pico5x
Regiões de serving6
Resultados orgânicos por query10

Perguntas de entrevista: é busca web, site search ou enterprise? Quais formatos entram? Safe search é obrigatório? Qual freshness esperada? Personalização entra? Ads entram? Qual QPS? Qual volume de documentos?

Métricas de Produto

Busca precisa de métricas de sistema e métricas de relevância.

Uma SERP rápida com resultados ruins ainda falha.

Uma SERP excelente que chega depois de 2 segundos também falha.

MétricaO que medeSinal de problema
Search success rateusuário encontrou resposta útilreformulações em sequência
Long click rateclique com permanênciaresultado promissor e útil
Pogo-stickingvolta rápida para a SERPsnippet enganoso ou página ruim
Query abandonmentsaída sem clique/respostabaixa relevância ou latência
Empty result rateconsultas sem respostacobertura ruim ou filtros agressivos
Fresh result coveragedocumentos recentes quando necessárionotícias atrasadas
Safe search precisionfiltro acerta conteúdo sensíveloverblocking/underblocking
Crawl useful yieldfetch que vira valor de buscafrontier desperdiçando budget

Escopo Que Não Devemos Misturar

Ads não entram no core.

Um leilão de anúncios tem latência, fairness, billing e compliance próprios.

Busca local também pode ser um vertical separado.

Ela depende de inventário de negócios, geocoding, horário de funcionamento e ranking geoespacial.

Busca por imagens e vídeos exige embeddings multimodais, thumbnails, transcodificação e políticas próprias.

O core deste guia é web search textual com capacidade de misturar verticais quando a query pede.

Consistência Esperada

Resultados de busca aceitam consistência eventual.

Se uma página nova aparece em uma região antes da outra, isso é tolerável na maioria dos casos.

Configuração de política não deve ser eventual sem controle.

Remoções legais, noindex, malware, safe search e ponteiros de manifest ativo exigem semântica mais forte.

Essa separação evita pagar custo de coordenação global em tudo.


Carregando publicação patrocinada...
1

Meus 2 cents,

Parabens pela iniciativa !

Eh um artigo bem denso e ia ate comentar que algumas partes/termos mereciam mais explicacoes (dada as limitacoes de espaco para publicacao no TABNEWS) - mas ai acessei o site da fonte e vi que la tem todo o detalhamento do que foi exposto.

Obrigado por compartilhar.

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS