Question 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, quelques minutes sont nécessaires pour terminer le processus. Si je remplis un terme de recherche dans Google, la réponse est sur mon écran en millisecondes

Comment est-il possible que Google effectue des recherches sur Internet, beaucoup plus volumineuses que mon disque dur, plus rapidement que mon système d'exploitation ne peut effectuer des recherches sur mon ordinateur? Est-ce seulement une question de puissance de calcul et le bon algorithme?


247
2018-04-03 18:44


origine


Avez-vous essayé d'indexer tous les fichiers de votre lecteur et de rechercher uniquement l'index? Essayer Tout et voir. - Karan
Google Desktop "utilisé" pour le faire pour Windows aussi ... - rogerdpack
Google recherche dans les index stockés dans la RAM, et non dans des fichiers sur un disque dur. - Ari
L'index est important, mais Google utilise également un algorithme de réduction de carte pour mener un ensemble d'opérations massivement parallèles. Peu importe le nombre de cœurs de votre ordinateur, je vous garantis que Google en a plus. - Adam Wuerl
Rien n'empêche une implémentation de recherche de bureau d'utiliser l'indexation. toutefois, rappelez-vous que Google a assez d'argent pour a) beaucoup de processeurs / serveurs très rapides pour paralléliser une requête; b) beaucoup de RAM très rapide pour ne jamais avoir à accéder à un disque; c) beaucoup de disques durs beaucoup plus rapidement que celui que vous utilisez; d) beaucoup d'ingénieurs très intelligents pour optimiser les algorithmes impliqués. (Par exemple, mettre en cache les résultats pour (beaucoup) de requêtes fréquemment utilisées et bien plus encore.) Ce n'est pas "seulement" une question pour l'un ou l'autre, il s'agit de toutes ces actions agissant de concert. - millimoose


Réponses:


Google ne recherche pas Internet: il recherche un index. Google dispose d'énormes batteries de serveurs qui analysent et indexent constamment Internet. Ce processus prend beaucoup de temps, tout comme la recherche de votre disque dur non indexé. Sous Windows 7, il existe une option pour indexer vos disques durs. Ce processus prend du temps au début, mais une fois qu'il est prêt, les résultats d'une recherche seront instantanés.

Si vous voulez en savoir plus sur le fonctionnement de la recherche Google, vous pouvez lire l'article de Google "Comment fonctionne la recherche"ou lire l'article"Comment ça marche: comment fonctionne Google".


210
2018-04-03 18:53



Dernier paragraphe: ce lien est beaucoup plus autoritaire et globalement meilleur. - ulidtko
Pardonnez ma curiosité, mais ne le faites pas systèmes de fichiers déjà indexer les fichiers sur le disque? N'est-ce pas ce que vous voyez dans votre explorateur de fichiers un simple index de liens vers les secteurs physiques réels du disque? Pourquoi devons-nous alors faire encore plus indexage? - Adi
@Adnan l'index des systèmes de fichiers est conçu pour trouver la position où un fichier est stocké sur un support physique. C'est comme l'index d'un livre qui vous indique sur quelle page un chapitre commence. Un index de recherche est conçu pour rechercher du contenu. Un bon index de recherche indexe non seulement un nom de fichier mais aussi le contenu des types de fichiers connus tels que pdf, doc, html, ... Les index avancés utilisent également des synonymes, donc si vous recherchez "car" le mot "automobile". - Simon
@Adnan, le système de fichiers n'est pas vraiment un "index", juste une arborescence de noms de fichiers. La recherche d'un tel arbre n'est pas rapide, car sa structure n'est pas optimisée pour la recherche. OTOH google (et bases de données) utilise des structures d'index triées spécifiques qui permettent une recherche rapide de l'éclair. Même dans ce cas, toutes les recherches ne peuvent pas bénéficier d'un tel index et seront plus lentes. - PiRX
@Adnan Dans un sens, l'arbre FS est optimisé contre recherche. Il est conçu pour permettre l'adressage des emplacements connus. A partir de votre noeud racine, vous ne disposez que d'une liste de répertoires et de fichiers sous root. Chaque répertoire ne connaît que les fichiers qu'il contient et les répertoires situés en dessous. L'accès à un chemin de fichier connu est très rapide et offre beaucoup de flexibilité, mais il n'existe pas de liste globale des fichiers à rechercher. Vous devez toujours descendre dans l'arborescence des répertoires, ce qui entraîne de nombreuses recherches distinctes. - Phoshi


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

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

Fondamentalement, c'est tout le travail organisationnel effectué avant la recherche qui le rend rapide.

FYI: Lors de la recherche de sites indexés, Windows Search peut être tout aussi réactif.


71
2018-04-03 21:09



Ou: Numériser un manuel par rapport à une table des matières (détaillée) - bobobobo


L’activité de Google est la recherche (et la diffusion d’annonces) et elle est très axée sur cela. Google fait un certain nombre de choses pour s'assurer que les données vous sont renvoyées très rapidement:

  • D'abord, il utilise MapReduce et Classement 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 les nombreux 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 courantes et les résultats sont mis en cache, ce qui réduit la nécessité d'effectuer la recherche.

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

En comparaison, une recherche de disque dur sans index doit lire tous les fichiers du lecteur, ce qui peut prendre beaucoup de temps.

De plus, vous pouvez penser à la fois à un système de fichiers et à un index en tant qu’arbre. 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 part pour plus de fichiers. Pour rechercher cette structure, vous devez "parcourir" toutes les branches (et sous-branches) pour trouver la feuille que vous recherchez. Un index retourne 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 découper 25 autres branches immédiatement).


36
2018-04-03 20:44





Il y a environ 4 ans, je me suis aussi posé la même question. Mais au fur et à mesure que je cherchais à faire mes recherches, je finis par lire que, outre le fait d’engager les meilleurs, ils trouvaient les algorithmes de recherche les plus sophistiqués et tout le reste.

L'un des concepts clés qu'ils ont utilisé est similaire à l'idée de réduire la carte, je pense. Vous avez beaucoup d'ordinateurs bon marché dans les fermes. Laissez ces ordinateurs avoir seulement environ 80 Go d'espace disque dur et poussez pour avoir environ 16 Go de RAM ou même mieux 32 Go de RAM sur ces ordinateurs (autant que possible). Rappelez-vous qu'ils sont connectés via un système sophistiqué qu'ils ont conçu. Mais l'idée clé ici est que lorsqu'une requête est soumise, elle est transmise à son système où elle va essayer 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 sont trouvées 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 aide grandement.

Et ces données ne doivent pas nécessairement être nouvelles, car nous savons tous que Google stocke tout. Pour ce qui est de ce qui devrait être en mémoire vive, le même principe avec les arbres splay peut être utilisé, conservez ce que les gens recherchent le plus dans la mémoire vive et videz les éléments 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 en fonction d'autres recherches.
  • Les données sont probablement dans la mémoire vive, ce que nous savons tous plus rapidement.
  • Utiliser plusieurs systèmes pour diviser et conquérir
  • La recherche est leur priorité principale.

Bien sûr, je peux me tromper, mais cela a du sens pour moi. Et j'étais content de ce que j'ai appris.


30
2018-04-03 22:57



Vous avez cloué sur certaines des choses que les autres affiches plus populaires ont manqué. Google ne recherche pas tout aussi souvent. Certainement pas sur internet, pas même dans ses propres caches. De plus, lorsque vous effectuez une recherche sur Google.com, la recherche ne se fait pas en temps réel, il suffit de copier et d’afficher rapidement les résultats de recherche déjà produits et organisés par Google ces derniers mois. Il est extrêmement compliqué de décrire le processus de production / organisation, mais on peut vaguement l'appeler "indexation", comme quelqu'un l'a dit. - Joseph Myers
Il est extrêmement compliqué de décrire le processus de production / d’organisation .... Oui, c'est ce que je qualifie de partie sophistiquée. Bravo, vous l'avez bien résumé. - Touch
@JosephMyers google indexes constamment. Faites une recherche sur une question posée sur SuperUser plus tôt dans la journée (par exemple. google.com/search?q=google+faster+than+a+hard+drive) et cela apparaît dans les résultats. - Brad Patton
@Touch Je suis d'accord sur les recherches dans la RAM. C'était le quatrième point de mon article sur la mise en cache - Brad Patton
@ Brad Patton True. Je devais le mentionner parce que c'était la base de ce que j'avais appris. Et la partie concernant l’indexation en permanence, bien la partie indexation est en quelque sorte la partie organisatrice. Par conséquent, la déclaration stipule que vous recherchez ce qui a été organisé et non ce qui est indexé pour le moment. Pour ce qui est des résultats, stackoverflow a plus de crédibilité que de nombreux sites Web, il est donc judicieux de l’indexer plus fréquemment. C'est pourquoi ça se voit. Si ce n'était pas pour cela, vous devriez attendre un jour ou deux avant que votre recherche apparaisse. Je pense que c'est ce que dit M. Joseph Myers. - Touch


Google utilise un système d’indexation extrêmement sophistiqué, des opérations parallèles 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 sur le Web et une recherche sur un disque dur, et Google optimise fortement ses possibilités d'utilisation.


20
2018-04-03 18:49





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.

Aussi, ils utilisent Système de fichiers Google (GFS) qui est un système de fichiers distribué comme Système de fichiers Hadoop Distribud (HDFS) et extrêmement optimisé pour leurs fins. Aussi à ma connaissance, GFS fonctionne peut-être mille fois plus vite que HDFS.


4
2018-04-04 06:49





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

Google sur Youtube 1
Google sur Youtube 2

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

À votre santé.


2
2018-04-04 00:14





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


1
2018-04-08 06:34





Pour répondre à la question de manière simpliste: imaginez que vous ayez un manuel avec un index de mots-clés à l'arrière.

Rechercher un disque dur (du moins naïvement), c'est comme parcourir le livre, page par page, en scannant chaque ligne pour rechercher une occurrence de votre mot-clé.

Utiliser un moteur de recherche Internet, c'est comme rechercher le mot-clé dans l'index, puis passer directement au numéro de page qu'il donne.

En réalité, bien sûr, c'est beaucoup plus complexe que cela. Par exemple, vous recherchez généralement différents types d'informations sur votre disque dur que sur Internet. Mais l’essentiel, c’est que le moteur de recherche utilise un index. Il a déjà parcouru le "livre", mot pour mot, et il a compilé une liste de ces mots avec où les trouver, et il a organisé la liste de manière à ce que les choses puissent être recherchées très rapidement. .

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 comporter 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 que vous souhaitez. 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 manque.

Donc, pour résumer, cela ressemble à votre disque dur qui a juste un livre, tandis que le moteur de recherche a 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 plutôt que l’ensemble.


0
2018-04-07 04:09





Je suppose que l'une des raisons pour lesquelles Google a émergé Auto Complete et utilisé AJAX était problème de vitesse. Maintenant, lorsque vous tapez, les mots sont envoyés en arrière-plan pour que Google puisse faire une partie du travail alors que vous n'avez pas encore fini. Les index sont également basés sur plusieurs combinaisons de mots (que vous pouvez trouver en tant que suggestions au bas de la page). Actuellement, la vitesse du réseau est supérieure à celle des disques durs et une grande partie de ces indices réside probablement dans la mémoire vive des serveurs de leur batterie.


-1
2018-04-06 18:49