web-dev-qa-db-fra.com

Pourquoi Google est-il tellement plus rapide qu'une recherche sur disque dur?

Lorsque je recherche un fichier sur mon disque dur sous Windows 7 ou Windows XP, le processus prend quelques minutes. Si je remplis un terme de recherche dans Google, la réponse est affichée sur mon écran en millisecondes.

Comment Google peut-il effectuer des recherches sur Internet, plusieurs fois plus volumineuse que mon disque dur, plus rapidement que mon système d'exploitation ne peut effectuer une recherche sur mon ordinateur? Est-ce seulement une question de puissance de calcul et du bon algorithme?

251
Arne

Google ne cherche pas sur Internet: il cherche un index. Google possède d'énormes batteries de serveurs qui analysent et indexent en permanence Internet. Ce processus prend beaucoup de temps, tout comme la recherche de votre disque dur non indexé. Dans Windows 7, il existe une option pour indexer vos disques durs. Ce processus prend un certain temps au début, mais une fois lancé, les résultats d’une recherche seront instantanés.

Si vous souhaitez en savoir plus sur le fonctionnement de la recherche Google, vous pouvez lire l'article de Google " Fonctionnement de la recherche " ou lire l'article " Fonctionnement de la fonction: comment fonctionne Google ".

211
Simon

Google, c'est comme chercher dans les pages jaunes une adresse (indexée). La recherche Windows s'apparente à vérifier les numéros des bâtiments (non indexés).

Une autre analogie consisterait à parcourir une bibliothèque bien organisée et un catalogue de cartes, ou simplement à trier une pile de livres non organisée à chaque fois.

Fondamentalement, c'est tout le travail d'organisation effectué avant la recherche qui accélère les choses.

FYI: Lors de la recherche d'emplacements indexés, la recherche Windows peut être tout aussi réactive.

71
Ryan

L’activité de Google est la recherche (et la diffusion d’annonces) et elle est très axée sur cela. Google veille à ce que vos données vous soient renvoyées très rapidement:

  • Il utilise d'abord MapReduce et PageRank pour générer un index complet du World Wide Web. Il le met à jour régulièrement pour que les résultats soient frais.
  • Cet index est distribué et répliqué sur plusieurs serveurs de Google.
  • Votre requête est répartie sur plusieurs serveurs pour générer les résultats renvoyés. Cela permet au processus d'être hautement parallélisé.
  • Les requêtes et les résultats courants sont mis en cache, ce qui réduit le besoin d'effectuer une recherche.

Voir ce lien pour plus d'informations sur Comment fonctionne la recherche

Comparativement, une recherche sur un disque dur sans index doit parcourir tous les fichiers du lecteur, ce qui peut prendre beaucoup de temps.

De plus, vous pouvez considérer un système de fichiers et un index comme une arborescence. Dans le système de fichiers, la racine de l'arborescence est le dossier de niveau supérieur et il peut contenir des branches (dossiers) ou des feuilles (fichiers) dans ce dossier. Chaque branche peut avoir des sous-branches pour plus de dossiers et des feuilles pour plus de fichiers. Pour rechercher cette structure, vous devez "parcourir" toutes les branches (et sous-branches) afin de trouver la feuille que vous recherchez. Un index renverse cette hiérarchie. La base devient l'alphabet et toutes les sous-branches sont affinées. Les feuilles sont l'emplacement de l'article que vous recherchez. La recherche dans cette structure vous permet d’élaguer (exclure) de grandes sections d’arbre (par exemple, la première lettre de votre terme de recherche vous permet de couper immédiatement 25 autres branches).

36
Brad Patton

Il y a environ 4 ans, je me suis également posé la même question. Mais lorsque je cherchais dans mes recherches, je finis par lire que, outre le fait qu’ils embauchent les meilleurs des meilleurs pour proposer des algorithmes de recherche parmi les plus sophistiqués et tout le reste.

Une des conceptions clés qu’ils ont utilisées est similaire à l’idée de réduire les cartes, je pense. Vous avez beaucoup d'ordinateurs bon marché dans les fermes. Laissez ces ordinateurs ne disposent que d’environ 80 Go d’espace disque et Push hard pour disposer d’environ 16 Go RAM, voire mieux 32 Go RAM sur ces ordinateurs (autant que possible). N'oubliez pas qu'ils sont connectés via un système sophistiqué qu'ils ont conçu. Mais l’idée principale ici est que lorsqu’une requête est soumise, elle est transmise à son système où elle essaiera de rechercher les nouvelles données dans la RAM. Gardez à l'esprit qu'ils ont beaucoup de ces ordinateurs bon marché. Et comme les données sont en RAM, elles se retrouvent beaucoup plus rapidement que sur un disque dur. Mais n'oubliez pas qu'ils ont aussi un système sophistiqué (indexation et tous ces algorithmes) qui l'aide beaucoup.

Et ces données ne doivent pas nécessairement être récentes, car nous savons tous que Google stocke tout. Pour ce qui devrait être dans la RAM, le même principe peut être utilisé avec les arbres splay, gardez ce que les gens recherchent le plus dans RAM et rincez les fichiers les moins recherchés sur le disque dur.

Cette petite idée, associée à leur indexation et à toutes les autres choses que d'autres ont mentionnées dans leurs réponses, pourrait être l'une des raisons pour lesquelles elle est plus rapide qu'une recherche sur disque dur.

  • Le pouvoir de prédire basé sur d'autres recherches.
  • Les données sont probablement dans RAM, ce que nous savons tous être plus rapide.
  • Utiliser plusieurs systèmes pour diviser pour régner
  • La recherche est leur principale priorité.

Bien sûr, je peux me tromper, mais cela me semblait logique. Et j'étais content de ce que j'ai appris.

30
Touch

Google utilise un système d'indexation extrêmement sophistiqué, des opérations en parallèle et un certain nombre de techniques d'équilibrage de charge non disponibles sur un ordinateur autonome standard. il y a vraiment très peu de similitude entre une recherche Web et une recherche de fichier sur disque dur, et Google optimise fortement pour leurs cas d'utilisation spécifiques.

20
Frank Thomas

En 2004, certains employés de Google ont publié un article: MapReduce et à partir de ce moment-là, ils se sont améliorés des centaines de fois.

De plus, ils utilisent Système de fichiers Google (GFS) qui est un système de fichiers distribué tel que Système de fichiers Hadoop Distribud (HDFS) et extrêmement optimisé pour leurs objectifs. Aussi, autant que je sache,GFSfonctionne peut-être mille fois plus vite queHDFS.

4
smttsp

J'ai pensé ajouter quelque chose à cela car j'avais moi aussi cette question il y a quelque temps et que j'ai trouvé ces superbes vidéos qui décrivent ce que Google fait à la surface. Intéressant à regarder.

Google sur Youtube 1
Google sur Youtube 2

Il va un peu plus en profondeur mais pas assez pour que vous vous perdiez dans les détails techniques.

À votre santé.

2
Mogget

Il suffit d'ajouter quelque chose aux merveilleuses réponses ici. Google utilise la mise en cache des expressions de recherche populaires. Les résultats de ces recherches résident dans une mémoire. Donc, si vous recherchez quelque chose qui fait l'objet de nombreuses recherches, les résultats apparaîtront presque immédiatement.

1
Mellowcandle

Pour répondre à la question à un niveau simpliste: imaginez que vous avez un manuel avec un index de mots-clés à la fin.

Rechercher un disque dur (au moins naïvement) revient à parcourir le livre, page par page, en balayant chaque ligne pour rechercher une occurrence de votre mot clé.

Utiliser un moteur de recherche Internet revient à chercher le mot-clé dans l'index, puis à regarder directement le numéro de page indiqué.

En réalité, c'est beaucoup plus complexe que cela. Par exemple, vous recherchez généralement sur votre disque dur des types d’informations autres que l’Internet. Mais l'essentiel, c'est que le moteur de recherche utilise un index. Il a déjà parcouru le "livre", mot par mot, et il a dressé une liste de ces mots et indique où les trouver. Il a organisé la liste de manière à pouvoir y rechercher très rapidement des éléments. .

Par exemple, pensez à l'organisation d'un index dans un livre. Premièrement, il est généralement trié par ordre alphabétique, et deuxièmement, il peut avoir des en-têtes de lettres. Lorsque vous recherchez un mot dans l'index, vous pouvez voir immédiatement la liste des mots commençant par la lettre souhaitée. Et comme la liste est triée, il est facile de trouver le mot que vous voulez dans la liste ou de dire rapidement s'il est manquant.

Donc, pour résumer, c'est comme si votre disque dur avait juste un livre, alors que le moteur de recherche avait l'index. Bien que, comme d'autres l'ont souligné, il est possible d'utiliser un logiciel pour indexer votre disque dur, puis vous pouvez utiliser l'index au lieu de tout.

0
mwfearnley