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


251

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

Como é possível ao Google pesquisar na Internet, que é muitas vezes maior que o 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?


99
Você já tentou indexar todos os arquivos em sua unidade e pesquisar apenas o índice? Experimente tudo e veja.
Karan

11
A área de trabalho do Google "usada" para fazer isso também com o Windows ...
#

14
O Google pesquisa por índices armazenados na RAM, não por arquivos no disco rígido.
Ari #

13
O índice é importante, mas o Google também usa um algoritmo de redução de mapa para conduzir um conjunto massivamente paralelo de operações. Não importa quantos núcleos você tenha no seu computador, garanto que o Google tem mais.
Adam Wuerl

41
Não há nada que impeça uma implementação de pesquisa na área de trabalho do uso de indexação. No entanto , lembre-se de que o Google tem dinheiro suficiente para: a) muitas CPUs / servidores muito rápidos para paralelizar uma consulta; b) muita RAM muito rápida para evitar o acesso a um disco; c) muitos discos rígidos muito mais rápidos que o que você usa; d) muitos engenheiros muito inteligentes para otimizar os algoritmos envolvidos. (Por exemplo, armazenar em cache os resultados de (muitas) consultas usadas com frequência e muito mais.
precisa saber é o seguinte

Respostas:


211

O Google não está pesquisando na internet: está pesquisando em um índice. O Google possui enormes farms de servidores que estão constantemente digitalizando e indexando a Internet. Esse processo leva muito tempo, assim como a pesquisa no 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, uma vez instalado e executando os resultados de uma pesquisa, será instantâneo.

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


46
Último parágrafo: esse link é muito mais autoritário e, em geral, melhor.
ulidtko

4
Perdoe minha curiosidade, mas os sistemas de arquivos já não indexam os arquivos no disco? O que você vê no seu explorador de arquivos não é um mero índice de links para os setores físicos reais no disco? Por que, então, precisamos fazer ainda mais indexação?
Adi

9
@Adnan, o índice de sistemas de arquivos foi projetado para encontrar a posição em que um arquivo é armazenado em uma mídia física. É como o índice de um livro que informa em que página um capítulo é iniciado. Um índice de pesquisa foi projetado para encontrar conteúdo. Um bom índice de pesquisa não apenas indexa o nome de um arquivo, mas também o conteúdo de tipos de arquivos conhecidos, como pdf, doc, html, ... Índices avançados usam também sinônimos. Se você pesquisar "car", também poderá encontrar resultados com a palavra "automóvel".
Simon

3
@ Adnan, o sistema de arquivos não é realmente um "índice", apenas uma árvore de nomes de arquivos. A pesquisa nessa árvore não é rápida, porque sua estrutura não é otimizada para pesquisa. O OTOH google (e bancos de dados) usa estruturas de índice classificadas específicas, o que torna a pesquisa para uma entrada específica muito rápida. Mesmo assim, nem todas as pesquisas podem se beneficiar desse índice e serão lentas (er).
Pirx

8
@ Adnan De certa forma, a Árvore FS é otimizada contra a pesquisa. Ele foi projetado para permitir o endereçamento de locais conhecidos. No nó raiz, tudo o que você obtém é uma lista de diretórios e arquivos sob raiz. Todo diretório conhece apenas os arquivos e os diretórios abaixo. O acesso a um caminho de arquivo conhecido é muito rápido e oferece muita flexibilidade, mas não existe uma lista global de arquivos a serem pesquisados. Você sempre deve descer pela árvore de diretórios, o que gera muitas pesquisas distintas.
Phoshi

71

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

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

Fundamentalmente, é todo o trabalho organizacional realizado antes da pesquisa que o torna mais rápido.

FYI: Ao pesquisar locais indexados, a pesquisa no Windows pode ser igualmente responsiva.


5
Ou: Digitalizar um livro vs olhando para uma mesa (detalhada) de conteúdos
bobobobo

36

O negócio do Google é a pesquisa (e a veiculação de anúncios) e é muito focado nisso. O Google faz várias coisas para garantir que os dados sejam retornados muito rapidamente:

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

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

Comparativamente, uma pesquisa no 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 em 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 ramificação pode ter sub ramificações para mais pastas e folhas para mais arquivos. Para pesquisar nessa estrutura, é necessário 'andar' em todos os galhos (e sub-galhos) para encontrar a folha que você está procurando. Um índice inverte essa hierarquia. A base se torna o alfabeto e todos os sub-ramos aprimoram ainda mais isso. As folhas são o local do item que você está procurando. A pesquisa nessa estrutura permite remover (excluir) grandes seções da árvore (por exemplo, a primeira letra do seu termo de pesquisa permite aparar outras 25 ramificações imediatamente).


30

Há cerca de quatro anos, eu também me fiz a mesma pergunta. Mas, enquanto pesquisava no Google, finalmente li que, além do fato de que eles contratam os melhores dos melhores para apresentar alguns dos algoritmos de pesquisa mais sofisticados e tudo isso.

Um dos principais designs que eles usaram é semelhante à idéia de reduzir o mapa, eu acho. Você tem muitos computadores baratos em fazendas. Permita que esses computadores tenham apenas cerca de 80 GB de espaço no disco rígido e se esforce para ter cerca de 16 GB de RAM ou até 32 GB de RAM nesses computadores (o máximo possível). Lembre-se de que eles estão conectados através de um sistema sofisticado que eles projetaram. Mas a idéia principal aqui é que, quando uma consulta é enviada, ela é passada para o sistema deles, onde tentará pesquisar os novos dados na RAM. Lembre-se de 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 no disco rígido. Mas não esqueça que eles também têm um sistema sofisticado (indexação e todos esses algoritmos) que ajudam bastante.

E esses dados não precisam ser atualizados, porque todos sabemos que o Google armazena tudo. Portanto, quanto ao que deveria estar na RAM, o mesmo princípio das árvores splay pode ser usado, mantenha o que as pessoas mais pesquisam na RAM e liberte o material menos pesquisado no disco rígido.

Essa pequena idéia, juntamente com a indexação e todas as outras coisas que outras pessoas mencionaram em suas respostas, pode ser um dos motivos pelos 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, que todos sabemos que são mais rápidos.
  • Use vários sistemas para dividir e conquistar
  • A pesquisa é sua principal prioridade.

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


7
Você acertou em algumas das coisas que os outros pôsteres mais populares perderam. O Google não pesquisa tudo com tanta frequência. Definitivamente, não em toda a Internet, e nem mesmo tudo em seus próprios caches. Além disso, quando você pesquisa no Google.com.br, a pesquisa real não está acontecendo em tempo real, apenas uma cópia e exibição rápidas dos resultados de pesquisa que já foram produzidos e organizados nos últimos meses pelo Google. É extremamente complicado descrever o processo de produção / organização, mas pode ser vagamente chamado de "indexação", como alguém disse.
31713 Joseph Myers

É extremamente complicado para descrever o processo / organizar a produção ... . Sim, é a isso que me refiro como a parte sofisticada. Polegares para cima, você resumiu bem.
Toque em

1
@JosephMyers indexa constantemente o Google. Faça uma pesquisa em uma pergunta feita no SuperUser no início do dia (por exemplo, google.com/search?q=google+faster+than+a+hard+drive ) e ela aparece nos resultados.
perfil completo de Brad Patton

@Touch Concordo com as pesquisas na RAM. Este foi o quarto ponto no meu post sobre o cache
Brad Patton

@Brad Patton True. Eu tinha que mencionar isso porque era a base do que eu aprendi. E a parte sobre indexação constantemente, bem, a parte de indexação é o tipo de parte da organização. Portanto, a declaração afirma que você pesquisa o que foi organizado e não o que está sendo indexado no momento. Quanto ao motivo pelo qual o resultado está sendo mostrado, o stackoverflow tem mais credibilidade do que muitos sites, portanto, é bom ideia indexá-lo com mais frequência. É por isso que aparece. Se não fosse por isso, você teria que esperar um dia ou dois antes do que a pesquisa aparecer. Acho que é isso que o senhor JosephMyers está dizendo.
Toque

20

O Google usa um sistema de indexação extremamente sofisticado, operações paralelas e várias técnicas de balanceamento de carga que não estão disponíveis para um computador autônomo padrão. há realmente muito pouca semelhança entre uma pesquisa na web e uma pesquisa de arquivos no disco rígido, e o google otimiza bastante para seus casos de uso específicos.


4

Em 2004, alguns funcionários do Google publicaram um artigo: MapReduce e, a partir de então, eles aprimoraram centenas de vezes.

Além disso, eles usam o Google File System (GFS), que é um sistema de arquivos distribuído como o Hadoop Distribud File System (HDFS) e extremamente otimizado para seus propósitos. Até onde eu sei, o GFS funciona talvez mil vezes mais rápido que o HDFS .


2

Eu pensei em acrescentar isso, já que eu também tinha essa pergunta há um 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 o suficiente para se perder em detalhes técnicos.

Felicidades.


1

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


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.

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

Usar um mecanismo de busca na Internet é como procurar a palavra-chave no índice e depois virar diretamente para o número da página que ela fornece.

Na realidade, é claro, é muito mais complexo que isso. Por exemplo, você normalmente pesquisaria no seu disco rígido diferentes tipos de informação que a Internet. Mas o básico a tirar é que o mecanismo de pesquisa está usando um índice. Ele já examinou o "livro", palavra por palavra, e compilou uma lista dessas palavras junto com o local onde encontrá-las, e organizou a lista de modo a poder procurar rapidamente as coisas nela .

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

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


-1

Acho que um dos motivos pelos quais o Google surgiu Auto Completee AJAXfoi o problema de velocidade. Agora, quando você digita, as palavras são enviadas em segundo plano para que o Google possa fazer parte do trabalho enquanto você ainda não terminou. Os índices também são baseados em várias combinações de palavras (que podem ser encontradas como sugestões na parte inferior da página). Atualmente, a velocidade da rede é maior que os discos rígidos e provavelmente muitos desses índices residem na RAM dos servidores em seu farm.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.