Frage Warum ist Google so viel schneller als eine Festplattensuche?


Wenn ich eine Datei auf meiner HD in Windows 7 oder Windows XP suche, dauert es einige Minuten, bis der Vorgang abgeschlossen ist. Wenn ich einen Suchbegriff in Google eintrage, erscheint die Antwort in Millisekunden auf meinem Bildschirm

Wie ist es möglich, dass Google das Internet, das um ein Vielfaches größer ist als meine Festplatte, schneller durchsuchen kann, als mein Betriebssystem meinen Computer durchsuchen kann? Geht es nur um Rechenleistung und den richtigen Algorithmus?


247
2018-04-03 18:44


Ursprung


Haben Sie versucht, alle Dateien auf Ihrem Laufwerk zu indizieren und nur den Index zu durchsuchen? Versuchen Alles und sehen. - Karan
Google-Desktop "verwendet", um das auch für Windows zu tun ... - rogerdpack
Google durchsucht Indizes, die im RAM gespeichert sind, nicht über Dateien auf einer Festplatte. - Ari
Der Index ist wichtig, aber Google verwendet auch einen Map-Reduction-Algorithmus, um einen massiv parallelen Satz von Operationen durchzuführen. Egal wie viele Kerne Sie in Ihrem Computer haben, ich garantiere, dass Google mehr hat. - Adam Wuerl
Es gibt nichts, was eine Implementierung der Desktop-Suche von der Indizierung ausschließt. jedochDenken Sie daran, dass Google genug Geld für a) viele sehr schnelle CPUs / Server zur Parallelisierung einer Abfrage hat; b) viel sehr schnelles RAM, um den Zugriff auf eine Festplatte zu vermeiden; c) viele Festplatten viel schneller als die, die Sie verwenden; d) viele sehr kluge Ingenieure, um die beteiligten Algorithmen zu optimieren. (Zum Beispiel Caching der Ergebnisse für (viele) häufig verwendete Abfragen und vieles mehr.) Es ist nicht "nur" eine Frage von jedem von diesen, es ist all dies im Zusammenspiel. - millimoose


Antworten:


Google sucht nicht im Internet: Es sucht einen Index. Google hat riesige Serverfarmen, die das Internet ständig scannen und indexieren. Dieser Vorgang benötigt viel Zeit, genau wie die Suche nach Ihrer nicht indizierten Festplatte. In Windows 7 gibt es eine Option zum Indexieren Ihrer Festplatten. Dieser Prozess benötigt zunächst etwas Zeit, aber sobald er läuft, werden die Ergebnisse einer Suche sofort angezeigt.

Wenn Sie mehr über die Funktionsweise der Google-Suche erfahren möchten, können Sie den Artikel von Google lesen. "Wie funktioniert die Suche?"oder lies den Artikel"Wie funktioniert das? Wie funktioniert Google?".


210
2018-04-03 18:53



Letzter Absatz: dieser Link ist viel autoritativer und insgesamt besser. - ulidtko
Entschuldige meine Neugier, aber tu es nicht Dateisysteme Indexieren Sie bereits die Dateien auf der Festplatte? Ist das, was Sie in Ihrem Datei-Explorer sehen, nicht nur ein Index von Links zu den tatsächlichen physischen Sektoren auf der Festplatte? Warum müssen wir dann tun? sogar mehr Indizierung? - Adi
@Adnan Der Dateisystemindex dient dazu, die Position zu ermitteln, an der eine Datei auf einem physischen Datenträger gespeichert ist. Es ist wie der Index eines Buches, der Ihnen sagt, auf welcher Seite ein Kapitel beginnt. Ein Suchindex soll Inhalte finden. Ein guter Suchindex indiziert nicht nur den Namen einer Datei, sondern auch den Inhalt bekannter Dateitypen wie PDF, doc, html, ... Erweiterte Indizes verwenden auch Synonyme. Wenn Sie also nach "Auto" suchen, kann es auch Ergebnisse mit finden das Wort "Automobil". - Simon
@Adnan, Dateisystem ist nicht wirklich ein "Index", nur eine Baumstruktur von Dateinamen. Die Suche nach einem solchen Baum ist nicht schnell, da seine Struktur nicht für die Suche optimiert ist. OTOH google (und Datenbanken) verwendet spezifische sortierte Indexstrukturen, die blitzschnell nach bestimmten Einträgen suchen. Selbst dann können nicht alle Suchen von einem solchen Index profitieren und werden langsam (er) sein. - PiRX
@Adnan In gewisser Hinsicht ist der FS-Baum optimiert gegen Suche. Es ermöglicht die Adressierung bekannter Standorte. Von Ihrem Root-Knoten erhalten Sie nur eine Liste von Verzeichnissen und Dateien unter root. Jedes Verzeichnis weiß nur über die darin enthaltenen Dateien und die Verzeichnisse darunter. Der Zugriff auf einen bekannten Dateipfad ist sehr schnell und bietet eine große Flexibilität, aber es gibt keine globale Liste von zu durchsuchenden Dateien. Sie müssen immer durch den Verzeichnisbaum absteigen, und das sorgt für viele verschiedene Lookups. - Phoshi


Google ist wie die Suche auf den Gelben Seiten nach einer Adresse (indiziert). Die Windows-Suche ist vergleichbar mit der Überprüfung von Gebäudenummern (nicht indiziert).

Eine andere Analogie wäre, einen gut organisierten Bibliotheks- und Kartenkatalog zu durchsuchen oder einfach nur einen unorganisierten Stapel Bücher zu sortieren.

Im Grunde ist es die ganze organisatorische Arbeit, die vor der Suche gemacht wurde, die es schnell macht.

Hinweis: Bei der Suche nach indizierten Standorten kann die Windows-Suche genauso reaktionsschnell sein.


71
2018-04-03 21:09



Oder: Ein Lehrbuch scannen oder in ein (detailliertes) Inhaltsverzeichnis schauen - bobobobo


Googles Geschäft ist die Suche (und die Werbung für Anzeigen) und es ist sehr darauf ausgerichtet. Es gibt eine Reihe von Dingen, die Google tut, um sicherzustellen, dass Daten sehr schnell an Sie zurückgegeben werden:

  • Zuerst benutzt es Karte verkleinern und Seitenrang um einen umfassenden Index des World Wide Web zu generieren. Es aktualisiert dies regelmäßig, so dass die Ergebnisse frisch sind.
  • Dieser Index wird auf die vielen Server von Google verteilt und repliziert
  • Ihre Abfrage wird auf mehrere Server aufgeteilt, um die zurückgegebenen Ergebnisse zu erstellen. Dadurch kann der Prozess stark parallelisiert werden.
  • Häufige Abfragen und Ergebnisse werden zwischengespeichert, sodass die Suche überhaupt nicht mehr durchgeführt werden muss.

Siehe diesen Link für mehr Informationen über Wie funktioniert die Suche?

Im Vergleich dazu muss eine Festplattensuche ohne Index jede Datei auf dem Laufwerk durchlesen, was sehr viel Zeit in Anspruch nehmen kann.

Zusätzlich können Sie sich sowohl ein Dateisystem als auch einen Index als Baum vorstellen. Im Dateisystem ist der Stammordner der oberste Ordner und kann Zweige (Ordner) oder Blätter (Dateien) in diesem einen Ordner enthalten. Jeder Zweig kann Unterzweige für mehr Ordner haben und lässt mehr Dateien übrig. Um diese Struktur zu durchsuchen, müssen Sie alle Zweige (und Unterzweige) durchlaufen, um das Blatt zu finden, nach dem Sie suchen. Ein Index dreht diese Hierarchie um. Die Basis wird zum Alphabet und alle Unterzweige verfeinern dies weiter. Die Blätter sind der Ort des gesuchten Artikels. Wenn Sie diese Struktur durchsuchen, können Sie große Abschnitte des Baums beschneiden (z. B. können Sie mit dem ersten Buchstaben Ihres Suchbegriffs 25 weitere Zweige sofort beschneiden).


36
2018-04-03 20:44





Vor ungefähr 4 Jahren habe ich mir die selbe Frage gestellt. Aber während ich meine Recherchen durchforschte, las ich schließlich, dass sie neben den besten Mitarbeitern auch die besten Suchalgorithmen und all das in Anspruch nehmen.

Eines der Schlüsseldesigns, das sie verwendet haben, ähnelt der Idee von Map Reduce, denke ich. Sie haben viele billige Computer auf Farmen. Lassen Sie diese Computer nur etwa 80 GB Festplattenspeicher und schieben Sie hart auf etwa 16 GB RAM oder noch besser 32 Gig RAM auf diesen Computern (so viel wie möglich). Denken Sie daran, dass sie durch ein ausgeklügeltes System miteinander verbunden sind. Aber die Schlüsselidee ist hier, dass wenn eine Anfrage eingereicht wird, sie in ihr System weitergeleitet wird, wo sie versuchen wird, die frischen Daten im RAM zu durchsuchen. Denken Sie daran, dass sie viele dieser billigen Computer haben. Und da sich die Daten im RAM befinden, werden sie viel schneller gefunden als auf einer Festplatte. Aber vergiss nicht, dass sie ein ausgeklügeltes System (Indizierung und all diese Algorithmen) haben, die sehr helfen.

Und diese Daten müssen nicht neu sein, denn wir alle wissen, dass Google alles speichert. Damit was im RAM sein soll, kann das gleiche Prinzip mit Splay Trees verwendet werden, halten was immer die Leute am meisten suchen im RAM und spült das am wenigsten gesuchte Zeug auf die Festplatte.

Diese kleine Idee, gekoppelt mit ihrer Indizierung und all den anderen Dingen, die andere in ihren Antworten erwähnt haben, könnte einer der Gründe sein, warum es schneller ist als eine Festplattensuche.

  • Die Vorhersagekraft basiert auf anderen Suchanfragen.
  • Die Daten sind höchstwahrscheinlich im RAM, von denen wir alle wissen, dass sie schneller sind.
  • Verwenden Sie mehrere Systeme für teile und herrsche
  • Das Suchen ist ihre Hauptpriorität.

Natürlich könnte ich mich irren, aber das machte Sinn für mich. Und ich war glücklich mit dem, was ich gelernt habe.


30
2018-04-03 22:57



Du hast es auf einige der Dinge genagelt, die die anderen, populäreren Poster verpasst haben. Google durchsucht nicht alles so oft. Definitiv nicht im gesamten Internet und nicht einmal in eigenen Caches. Wenn Sie auf Google.de suchen, erfolgt die eigentliche Suche nicht in Echtzeit, sondern lediglich ein schnelles Kopieren und Anzeigen von Suchergebnissen, die in den vergangenen Monaten von Google bereits erstellt und organisiert wurden. Es ist extrem kompliziert, den Herstellungs- / Organisationsprozess zu beschreiben, aber es kann vage als "Indexierung" bezeichnet werden, wie jemand sagte. - Joseph Myers
Es ist extrem kompliziert, den Herstellungs- / Organisationsprozess zu beschreiben .... Ja, das nenne ich den anspruchsvollen Teil davon. Daumen hoch, du hast es gut zusammengefasst. - Touch
@JosephMyers google Indizes ständig. Führen Sie eine Suche zu einer Frage durch, die am Vortag in SuperUser gestellt wurde (z. B. google.com/search?q=google+faster+hier+einen+harten+Antrieb) und es zeigt sich in den Ergebnissen. - Brad Patton
@Touch stimme ich zu Suchen im RAM zu. Dies war der vierte Punkt in meinem Beitrag zum Caching - Brad Patton
@ Brad Patton True. Ich musste es erwähnen, weil es die Grundlage dessen war, was ich gelernt habe. Und der Teil über die Indexierung ständig, gut der Indexteil ist eine Art organisierender Teil. Daher besagt die Aussage, dass Sie suchen, was organisiert wurde und nicht, was gerade indiziert wird. Was das Ergebnis angeht, hat stackoverflow mehr Glaubwürdigkeit als viele Websites. Daher ist es gut zu wissen, dass es häufiger indiziert wird. Deshalb taucht es auf. Wenn es nicht dafür wäre, müssten Sie ein oder zwei Tage warten, bevor das, was Sie suchen, auftaucht. Ich denke, das ist es, was Herr JosephMyers sagt. - Touch


Google verwendet ein hochentwickeltes Indizierungssystem, parallele Operationen und eine Reihe von Lastverteilungstechniken, die für einen Standard-Standalone-Computer nicht verfügbar sind. Es gibt wirklich sehr wenig Ähnlichkeit zwischen einer Web-Suche und einer Festplatten-Datei-Suche, und Google optimiert stark für ihre spezifischen Anwendungsfälle.


20
2018-04-03 18:49





Im Jahr 2004 veröffentlichten einige Google-Mitarbeiter ein Papier: Karte verkleinern und von diesem Zeitpunkt an verbesserten sie sich hunderte Male.

Sie benutzen auch Google Dateisystem (GFS) Das ist ein verteiltes Dateisystem wie Hadoop-Distribud-Dateisystem (HDFS) und extrem für ihre Zwecke optimiert. Auch soweit ich weiß, GFS funktioniert vielleicht tausendmal schneller als HDFS.


4
2018-04-04 06:49





Ich dachte, ich würde das hinzufügen, da ich diese Frage schon vor einer Weile hatte und diese großartigen Videos gefunden habe, die beschreiben, was Google an der Oberfläche tut. Interessant anzusehen.

Google auf Youtube 1
Google auf Youtube 2

Er geht ein wenig tiefer, aber nicht tief genug, dass man sich in technischen Details verliert.

Prost.


2
2018-04-04 00:14





Fügen Sie einfach etwas zu den wunderbaren Antworten hier hinzu. Google verwendet das Caching populärer Suchbegriffe. Die Ergebnisse dieser Suchen befinden sich in einem Speicher. Wenn Sie also nach etwas suchen, das häufig gesucht wird, werden die Ergebnisse fast sofort angezeigt.


1
2018-04-08 06:34