sábado, 17 de novembro de 2007

Como funciona uma máquina de busca?

Crawlers, Spiders, Robôs e Coletores

Sim, todos os termos acima se referem a mesma coisa: A parte da máquina de busca responsável por coletar os documentos da Web a serem indexados e consultados posteriormente. Mas como eles funcionam? Os coletores começam com um conjunto inicial de URLs para serem visitadas. O sistema então baixa estes documentos e deles extrai os links, conteúdo e outras informações. As URLs dos links extraídos são guardadas para que se possa acessá-las posteriormente. O processo é mostrado na figura abaixo:

Para que tudo isso funcione o processo todo é dividido em partes (componentes):

  • Coletores - Fazem a requisição de páginas aos servidores HTTP. Extraem os links das páginas recebidas e enviam ao escalonador. Requisitam do escalonador uma ou mais URLs a serem coletadas.
  • Servidor de Armazenamento - Recebem os documentos coletados e os armazena localmente. Fazem a extração (também chamado de parsing) do texto e conteúdo em outros formatos: PDF, Word, Powerpoint, etc.
  • Servidor de Nomes - Faz um controle das requisições DNS (Domain Name System) para que os coletores não façam requisições remotas. Em outras palavras não deixa o coletor procurar onde está um site se o Servidor de Nomes já tem guardado essa informação.
  • Escalonador - Responsável por decidir qual a próxima URL a ser coletada. Coordenando dessa forma a ação dos coletores. Deve garantir que não haverão coletas repetidas.

Assim temos esta figura mais detalhada:

O escalonamento é um função crítica da coleta. É complicado coletar TODAS as páginas da Web. Por isso são utilizadas técnicas para tentar pegar apenas as "melhores" páginas. Alguns exemplos são:

  • Em Profundidade - Resulta em uma coleta “focada”, pois você caminha por todo um determinado site antes de ir para o próximo. Pode-se limitar o número de níveis.
  • Em Largura com sufixo de URL - Exemplo: *.terra.com.br. Garante cobertura balanceada entre sites. Técnica bastante utilizada.
  • Baseadas em Ranking de URLs - Pode ser baseada em conteúdo, em popularidade (número de acessos) ou em conectividade (número de referências).
  • Baseada em Conectividade - Pode ser de dois tipos:

    • Referências (Backlink count) - Quanto mais links apontando para uma página maior a "importância" dela.

    • Variações recursivas - Links vindos de páginas com maior "importância" tem maior peso. Esta é a técnica usada pelo algoritmo PageRank.

Existem algumas outras dificuldades e observações relativas aos coletores na Web. Como muitos sabem, os robôs das máquinas de busca devem seguir algumas restrições especificadas no arquivo robots.txt e em meta-tags. Além disso, é considerado ético não bombardear o servidor de um site com inúmeras requisições sequenciais.

Existem outros inúmeros detalhes e problemas que precisam ser resolvidos na hora de construir um coletor para uma máquina de busca na Web.

Fonte: http://www.blogdohummel.com/
Autor: