Por que o Google é muito mais rápido que uma pesquisa de disco rígido?

247

Quando pesquiso um arquivo no meu HD no Windows 7 ou no Windows XP, leva alguns minutos para concluir o processo. Se eu preencher um termo de pesquisa no Google, a resposta estará na minha tela em milissegundos

Como é possível que o Google pesquise na Internet, que é muitas vezes maior que meu disco rígido, mais rápido do que o meu sistema operacional pode pesquisar no meu computador? É apenas uma questão de poder de computação e o algoritmo certo?

    
por Arne 03.04.2013 / 20:44

10 respostas

210

O Google não está pesquisando na internet: está pesquisando um índice. O Google tem enormes fazendas de servidores que estão constantemente digitalizando e indexando a internet. Este processo leva muito tempo, assim como a busca de seu disco rígido não indexado. No Windows 7, há uma opção para indexar seus discos rígidos. Esse processo leva algum tempo no início, mas, quando estiver em funcionamento, os resultados de uma pesquisa serão instantâneos.

Se você quiser saber mais sobre como a pesquisa do Google funciona, leia o artigo do Google " Como a pesquisa funciona "ou leia o artigo" Como funciona o material: como o Google funciona ".

    
por 03.04.2013 / 20:53
71

O Google é como procurar nas páginas amarelas um endereço (indexado). A pesquisa do Windows é semelhante a verificar números em edifícios (não indexados).

Outra analogia seria examinar uma biblioteca e um catálogo de cartões bem organizados, ou apenas classificar uma pilha desorganizada de livros todas as vezes.

Fundamentalmente, é todo o trabalho organizacional feito antes da pesquisa que faz com que seja rápido.

FYI: ao pesquisar locais indexados, a pesquisa do Windows pode ser igualmente responsiva.

    
por 03.04.2013 / 23:09
36

O negócio do Google é pesquisar (e veicular anúncios) e é muito focado nisso. Há diversas ações que o Google faz para garantir que os dados sejam devolvidos a você com rapidez:

  • Primeiro, ele usa MapReduce e PageRank para gerar um índice abrangente da World Wide Web. Ele atualiza isso regularmente para que os resultados sejam novos.
  • Esse índice é distribuído e replicado nos vários servidores do Google
  • Sua consulta é dividida em vários servidores para criar os resultados retornados. Isso permite que o processo seja altamente paralelizado.
  • Consultas e resultados comuns são armazenados em cache, reduzindo a necessidade de realizar a pesquisa.

Veja este link para mais informações sobre Como funciona a pesquisa

Comparativamente, uma pesquisa de disco rígido sem um índice precisa ler todos os arquivos da unidade e isso pode levar muito tempo.

Além disso, você pode pensar em um sistema de arquivos e um índice como uma árvore. No sistema de arquivos, a raiz da árvore é a pasta de nível superior e pode ter ramificações (pastas) ou folhas (arquivos) nessa pasta. Cada filial pode ter sub-filiais para mais pastas e deixa para mais arquivos. Para pesquisar essa estrutura, você precisa percorrer todos os ramos (e sub-ramos) para encontrar a folha que está procurando. Um índice inverte essa hierarquia. A base se torna o alfabeto e todos os sub-ramos refinam ainda mais isso. As folhas são a localização do item que você está procurando. Pesquisar essa estrutura permite remover (excluir) grandes seções da árvore (por exemplo, a primeira letra do seu termo de pesquisa permite que você apare 25 outras ramificações imediatamente).

    
por 03.04.2013 / 22:44
30

Cerca de 4 anos atrás eu também me fiz a mesma pergunta. Mas como eu pesquisei em torno de fazer minha pesquisa, finalmente li que além do fato de que eles contratam o melhor dos melhores para chegar a alguns dos mais sofisticados algoritmos de busca e tudo isso.

Um dos principais projetos que eles usaram é semelhante à idéia de redução de mapa, eu acho. Você tem muitos computadores baratos em fazendas. Deixe esses computadores terem apenas cerca de 80 gigabytes de espaço em disco rígido e esforçar-se para ter cerca de 16 gigabytes de RAM ou até mesmo 32 gig de RAM nesses computadores (tanto quanto possível). Lembre-se de que eles estão conectados por meio de um sistema sofisticado que eles projetaram. Mas a idéia chave aqui é que, quando uma consulta é enviada, ela é passada para o sistema, onde tentará pesquisar os dados novos na RAM. Tenha em mente que eles têm muitos desses computadores baratos. E como os dados estão na RAM, eles são encontrados muito mais rapidamente do que seriam em um disco rígido. Mas não se esqueça que eles também têm um sistema sofisticado (indexação e todos esses algoritmos) que ajuda muito.

E esses dados não precisam ser novos, porque todos sabemos que o Google armazena tudo. Então, quanto ao que deveria estar na memória RAM, o mesmo princípio com árvores splay pode ser usado, manter o que as pessoas estão procurando mais na RAM e descarregar o material menos pesquisado no disco rígido.

Essa pequena ideia, juntamente com a indexação deles e todas as outras coisas que os outros mencionaram em suas respostas, pode ser uma das razões pelas quais é mais rápido do que uma pesquisa no disco rígido.

  • O poder de prever com base em outras pesquisas.
  • Os dados são mais prováveis na RAM e todos sabemos que é mais rápido.
  • Use vários sistemas para dividir e conquistar
  • A pesquisa é sua principal prioridade.

Claro que posso estar errado, mas isso faz sentido para mim. E fiquei feliz com o que aprendi.

    
por 04.04.2013 / 00:57
20

O Google usa um sistema de indexação extremamente sofisticado, operações paralelas e diversas técnicas de balanceamento de carga não disponíveis para um computador padrão independente. há muito pouca semelhança entre uma pesquisa na Web e uma pesquisa de arquivos no disco rígido, e o Google otimiza bastante para os casos de uso específicos.

    
por 03.04.2013 / 20:49
4

Em 2004, alguns funcionários do Google publicaram um artigo: MapReduce e a partir desse momento melhoraram centenas de vezes.

Além disso, eles usam o Sistema de Arquivos do Google (GFS) , que é um sistema de arquivos distribuídos como o Sistema de Arquivos Hadoop Distribud (HDFS) e extremamente otimizado para suas finalidades. Também, até onde eu sei, GFS funciona talvez milhares de vezes mais rápido que o HDFS .

    
por 04.04.2013 / 08:49
2

Eu pensei em acrescentar isso, pois também tive essa pergunta há algum tempo e encontrei esses ótimos vídeos que descrevem o que o Google faz na superfície. Interessante de assistir.

Google no Youtube 1
Google no Youtube 2

Ele vai um pouco mais fundo, mas não profundo o suficiente para você se perder em detalhes técnicos.

Felicidades.

    
por 04.04.2013 / 02:14
1

Apenas adicionando algo às maravilhosas respostas aqui. O Google usa o cache de frases de pesquisa populares. Os resultados dessas pesquisas residem em uma memória. Então, se você procurar algo muito pesquisado, os resultados aparecerão quase imediatamente.

    
por 08.04.2013 / 08:34
0

Para responder à pergunta em um nível simplista: imagine que você tenha um livro com um índice de palavras-chave na parte de trás.

Pesquisar um disco rígido (ingenuamente, pelo menos) é como percorrer o livro, página por página, verificando cada linha em busca de uma ocorrência da sua palavra-chave.

Usar um mecanismo de pesquisa da Internet é como procurar a palavra-chave no índice e, em seguida, direcionar diretamente para o número de página fornecido.

Na realidade, é muito mais complexo do que isso. Por exemplo, você normalmente procuraria em seu disco rígido por diferentes tipos de informações além da Internet. Mas a coisa básica a ser retirada é que o mecanismo de pesquisa está usando um índice. Ele já passou pelo "livro", palavra por palavra, e compilou uma lista dessas palavras junto com onde encontrá-las, e organizou a lista de tal forma que ela pode procurar coisas muito rapidamente. .

Por exemplo, pense na organização de um índice em um livro. Em primeiro lugar, geralmente é classificado em ordem alfabética e, em segundo lugar, pode ter títulos de letras. Quando você procura uma palavra no índice, pode ver imediatamente a lista de palavras que começam com a letra que você deseja. E como a lista está classificada, é fácil encontrar a palavra desejada na lista ou informar rapidamente se ela está faltando.

Então, para resumir, é como se o seu disco rígido tivesse apenas um livro, enquanto o mecanismo de pesquisa tivesse o índice. Embora, como alguns outros apontaram, é possível usar software para indexar seu disco rígido, e então você pode usar o índice em vez de tudo.

    
por 07.04.2013 / 06:09
-1

Acho que uma das razões pelas quais o Google surgiu Auto Complete e usou AJAX foi problema de velocidade. Agora, quando você está digitando, as palavras são enviadas em segundo plano para que o Google possa fazer parte do trabalho enquanto você ainda não terminou. Também os índices são baseados em múltiplas combinações de palavras (que você pode encontrar como sugestões na parte inferior da página). Atualmente, a velocidade da rede é maior do que a dos discos rígidos e, provavelmente, muitos desses índices residem na RAM dos servidores do farm.

    
por 06.04.2013 / 20:49