web-dev-qa-db-de.com

Warum ist Google so viel schneller als eine Festplattensuche?

Wenn ich unter Windows 7 oder Windows XP eine Datei auf meiner Festplatte suche, dauert es einige Minuten, bis der Vorgang abgeschlossen ist. Wenn ich in Google einen Suchbegriff eingebe, wird die Antwort in Millisekunden auf meinem Bildschirm angezeigt

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

251
Arne

Google durchsucht nicht das Internet, sondern einen Index. Google hat riesige Serverfarmen, die ständig das Internet durchsuchen und indizieren. Dieser Vorgang nimmt viel Zeit in Anspruch, genau wie die Suche auf Ihrer nicht indizierten Festplatte. In Windows 7 gibt es eine Option zum Indizieren Ihrer Festplatten. Dieser Vorgang dauert zunächst einige Zeit, aber sobald er ausgeführt wird, werden die Ergebnisse einer Suche sofort angezeigt.

Wenn Sie mehr über die Funktionsweise der Google-Suche erfahren möchten, lesen Sie den Artikel " Funktionsweise der Suche " von Google oder den Artikel " Funktionsweise von Google: Funktionsweise von Google ".

211
Simon

Google ist wie das Durchsuchen der Gelben Seiten nach einer Adresse (indiziert). Die Windows-Suche ähnelt dem Herumfahren und Überprüfen von Zahlen in Gebäuden (nicht indiziert).

Eine andere Analogie wäre das Durchsuchen einer gut organisierten Bibliothek und eines Kartenkatalogs oder jedes Mal nur das Durchsuchen eines unorganisierten Bücherstapels.

Grundsätzlich ist es die ganze organisatorische Arbeit, die vor der Suche erledigt wurde, die es schnell macht.

Zu Ihrer Information: Beim Durchsuchen indizierter Speicherorte kann die Windows-Suche genauso ansprechend sein.

71
Ryan

Googles Geschäft ist die Suche (und das Schalten von Anzeigen) und es ist sehr darauf ausgerichtet. Google unternimmt eine Reihe von Maßnahmen, um sicherzustellen, dass die Daten sehr schnell an Sie zurückgesendet werden:

  • Zunächst wird mit MapReduce und PageRank ein umfassender Index des World Wide Web erstellt. Es aktualisiert dies regelmäßig, damit die Ergebnisse frisch sind.
  • Dieser Index wird auf den vielen Servern 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 ausgeführt werden muss.

Weitere Informationen zu Funktionsweise der Suche finden Sie unter diesem Link.

Vergleichsweise muss bei einer Festplattensuche ohne Index jede Datei auf der Festplatte durchgelesen werden, was viel Zeit in Anspruch nehmen kann.

Außerdem können Sie sich sowohl ein Dateisystem als auch einen Index als Baum vorstellen. Im Dateisystem ist der Stamm des Baums der Ordner der obersten Ebene und er kann Zweige (Ordner) oder Blätter (Dateien) in diesem einen Ordner haben. Jeder Zweig kann Unterzweige für mehr Ordner und Blätter für mehr Dateien haben. Um diese Struktur zu durchsuchen, müssen Sie alle Zweige (und Unterzweige) „durchgehen“, 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 Artikels, den Sie suchen. Durch Durchsuchen dieser Struktur können Sie große Baumabschnitte beschneiden (ausschließen) (z. B. können Sie mit dem ersten Buchstaben Ihres Suchbegriffs 25 andere Zweige sofort abschneiden).

36
Brad Patton

Vor ungefähr 4 Jahren habe ich mir die gleiche Frage gestellt. Aber als ich meine Nachforschungen anstellte, las ich schließlich, dass sie die Besten der Besten einstellen, um einige der ausgefeiltesten Suchalgorithmen und all das zu entwickeln.

Eines der wichtigsten verwendeten Designs ähnelt meiner Meinung nach der Idee der Kartenreduzierung. Auf Farmen gibt es viele billige Computer. Lassen Sie diese Computer nur ca. 80 GB Festplattenspeicher und Push Hard ca. 16 GBRAModer noch besser 32 GBRAMauf diesen Computern haben (so viel wie möglich). Denken Sie daran, dass sie durch ein ausgeklügeltes System miteinander verbunden sind, das sie entworfen haben. Die Schlüsselidee dabei ist jedoch, dass eine gesendete Abfrage an ihr System übergeben wird, wo sie versucht, die neuen Daten im RAM zu durchsuchen. Denken Sie daran, sie haben viele dieser billigen Computer. Und da sich die Daten im RAM befinden, werden sie viel schneller gefunden als auf einer Festplatte. Aber vergessen Sie nicht, dass sie auch ein ausgeklügeltes System (Indexierung und all diese Algorithmen) haben, das sehr hilfreich ist.

Und diese Daten müssen nicht unbedingt aktuell sein, da wir alle wissen, dass Google alles speichert. Was sich im RAM befinden soll, kann nach dem gleichen Prinzip wie bei Splay-Bäumen gesucht werden. Stellen Sie sicher, dass in RAM die am wenigsten gesuchten Daten auf die Festplatte geschrieben werden.

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

  • Die Vorhersagekraft basierend auf anderen Suchanfragen.
  • Die Daten befinden sich höchstwahrscheinlich in RAM, von dem wir alle wissen, dass es schneller ist.
  • Verwenden Sie mehrere Systeme, um zu teilen und zu erobern
  • Das Suchen ist ihre Hauptpriorität.

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

30
Touch

Google verwendet ein äußerst ausgeklügeltes Indizierungssystem, parallele Vorgänge und eine Reihe von Lastausgleichstechniken, die für einen Standalone-Computer nicht verfügbar sind. Es gibt wirklich sehr wenig Ähnlichkeit zwischen einer Websuche und einer Suche nach Festplattendateien, und Google optimiert stark für ihre spezifischen Anwendungsfälle.

20
Frank Thomas

Im Jahr 2004 veröffentlichten einige Google-Mitarbeiter eine Veröffentlichung: MapReduce und von da an verbesserten sie diese hundertfach.

Außerdem verwenden sie Google File System (GFS) , ein verteiltes Dateisystem wie Hadoop Distribud File System (HDFS) und sind extrem für ihre Zwecke optimiert. Soweit ich weiß, arbeitetGFSvielleicht tausendmal schneller alsHDFS.

4
smttsp

Ich dachte, ich würde noch etwas hinzufügen, da ich auch diese Frage vor einiger Zeit hatte und diese tollen Videos gefunden habe, die beschreiben, was Google an der Oberfläche macht. Interessant zu sehen.

Google auf Youtube 1
Google auf Youtube 2

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

Prost.

2
Mogget

Fügen Sie hier einfach etwas zu den wunderbaren Antworten hinzu. Google verwendet die Zwischenspeicherung beliebter Suchbegriffe. Die Ergebnisse dieser Suchvorgänge befinden sich in einem Speicher. Wenn Sie also nach etwas suchen, das häufig durchsucht wird, werden die Ergebnisse fast sofort angezeigt.

1
Mellowcandle

Um die Frage auf einer vereinfachenden Ebene zu beantworten: Stellen Sie sich vor, Sie haben ein Lehrbuch mit einem Stichwortindex auf der Rückseite.

Das Durchsuchen einer Festplatte (zumindest naiv) gleicht dem seitenweisen Durchsuchen des Buchs, bei dem jede Zeile nach einem Vorkommen Ihres Schlüsselworts durchsucht wird.

Das Verwenden einer Internet-Suchmaschine bedeutet, das Schlüsselwort im Index nachzuschlagen und dann direkt zur angegebenen Seitenzahl zu wechseln.

In Wirklichkeit ist es natürlich viel komplexer. Beispielsweise durchsuchen Sie normalerweise Ihre Festplatte nach anderen Arten von Informationen als im Internet. Aber das Grundlegende, was man wegnehmen sollte, ist, dass die Suchmaschine einen Index verwendet. Es hat bereits Wort für Wort das "Buch" durchgesehen, eine Liste dieser Wörter zusammengestellt und die Liste so organisiert, dass es die darin enthaltenen Informationen sehr schnell nachschlagen kann .

Denken Sie beispielsweise an die Organisation eines Index in einem Buch. Erstens ist es normalerweise alphabetisch sortiert und zweitens kann es Buchstabenüberschriften haben. Wenn Sie ein Wort im Index nachschlagen, sehen Sie sofort die Liste der Wörter, die mit dem gewünschten Buchstaben beginnen. Und da die Liste sortiert ist, ist es einfach, das gewünschte Wort in der Liste zu finden oder schnell zu erkennen, ob es fehlt.

Zusammenfassend ist es so, als hätte Ihre Festplatte nur ein Buch, während die Suchmaschine den Index hat. Obwohl einige andere darauf hingewiesen haben, ist es möglich, Software zum Indizieren Ihrer Festplatte zu verwenden, und dann können Sie den Index anstelle des Ganzen verwenden.

0
mwfearnley