Posts Tagged ‘mecanismos de busca’

Behind that white webpage

setembro 30th, 2009

Está acontecendo  na UFABC a Semana do CMCC – palestras, mini-cursos, workshops, exposições de projetos universitários e competições, envolvendo tecnologia, computação e matemática.

Ontem, 29 de setembro, uma das palestras foi ministrada por Igor Prata Soares (Google Inc.), a convite do meu professor João Paulo Gois.

“Behind that white webpage” (Por trás da página branca) -  a palestra de Igor forneceu algumas noções sobre o funcionamento da página de buscas do Google e sobre a sua infra-estrutura.

Tentarei levantar as principais abordagens da palestra e deixarei, ao final do post, os apelos, ou conselhos, colocados por Igor no fechamento de sua apresentação.

Logotipo do Google

O mecanismo de buscas do Google é basicamente dividio em 3 etapas:

Coleção de páginas: Anteriormente a uma pesquisa por determinada query, ou palavra, e à sua indexação e apresentação dos resultados ao usuário, as páginas existentes na web devem ser catalogadas e, acima disto tudo, devem ser visíveis pelo software.

Para que esta visibilidade aconteça, é necessário que uma lista de links aponte para algumas páginas, sendo estas catalogadas e seus links coletados para o aumento da lista e assim por diante, mapeando desta forma todo o conteúdo que existe na rede. As páginas recentes, que ainda não são apontadas por nenhum link na web, também podem ser indexadas pelo Google através de um serviço fornecido pela própria empresa.

Segundo Igor, o coletor (crawler) é o elemento mais difícil de ser implementado a nível de programação.

Indexação: Uma vez coletadas as páginas que poderão ser apresentadas como resultado da busca de um usuário, todo este conteúdo deve ser mapeado e acessível, em outras palavras, o conteúdo deve ser indexado.  Exemplo hipotético de como as palavras e páginas são indexadas pelo Google:

Supondo que {A, B} são todas as palavras existentes na Web e {1, 2, 3} todos os documentos (páginas), coletados pelo crawler do buscador, a indexação poderia ser feita da seguinte maneira:

A {1, 2}

B {2, 3}

De forma que cada palavra é uma verdadeira chave ou ponteiro para todos os documentos que as contém em seu conteúdo. A busca por A or B, por exemplo, retornaria a união entre os documentos apontados por A e os apontados por B: {1, 2, 3}. Já a busca por A and B, retornaria a intersecção entre os documentos apontados por A e os apontados por B: {2}.

Através deste conceito não muito difícil de ser entendido, uma busca real no Google pelas palavras-chaves diário expandido , retorna aproximadamente 2.840.000 de páginas.

Processamento de relevância: Finalmente, após serem coletadas pelo Crawler e encontradas e mapeadas pelo indexador, as páginas devem passar por um crivo que determina a relevância de cada página perante o termo buscado pelo usuário, apresentando-as logo nas primeiras páginas.

São mais de 100 os critérios para determinação da relevância de uma página, baseados exclusivamente no conteúdo dos documentos, por exemplo: Título da página, tamanho da fonte, proximidade entre as palavras buscadas no texto do documento, meta-tags do código HTML, quantidade ou frequencia das palavras, etc.

Mas a maioria destes critérios “on page” já eram utilizados por outros buscadores anteriores ao Google, foi aí que, pensando fora da caixa, saindo da dimensão dos documentos e partindo para algo mais macroscópico, os então estudantes da Stanford University Larry Page e Sergey Brin, tiveram a grande sacada de bilhões de dólares, o PageRank.

O PageRank é o nível de visibilidade de uma determinada página no resto da Web. Basicamente, quanto mais páginas apontam para uma específica, mais relevante ela é e quanto maior o PageRank de uma página, maiores são os PageRank’s das páginas apontadas por ela, criando um grande grafo que é geniosamente calculado pelos algoritimos do Google.

Google PageRank

A palestra ainda se estendeu com explicações sobre a escalabilidade e a infra-estrutura da empresa.

Milhares de computadores comuns são mais vantajosos do que poucos super-computadores para o processamento, indexação, etc. levando em consideração o custo/manutenção. Na Google, caso uma máquina falhe (e falham!), ela é retirada na hora, outra é colocada no lugar e automaticamente configurada, sem causar grandes transtornos em seus serviços.

Igor Prata Soares finalizou a sua apresentação alertando os universitários presentes sobre a importância da vida e do convívio acadêmico e de como isso pode influenciar, caso queiram fazer parte de uma empresa como a Google, ou mesmo criarem a “idéia de bilhões de dólares”, frizando sempre o valor daqueles que pensam fora da caixa.


É isso aí, espero ter agregado um pouco de conteúdo aos meus leitores com este breve resumo sobre a excelente palestra que assisti.

Agradeço ao professor João Paulo Gois pela oportunidade e ao Igor Prata Soares pela boa vontade em ter vindo de Belo Horizonte para Santo André, parabenizo-o também pela sua apresentação e pelo seu fabuloso trabalho.

Aos que se interessaram sobre os detalhes do processamento da relevância de uma página, aproveito para divulgar o trabalho de @marthagabriel, especialista em Search Engine Optimization – www.martha.com.br