Wenn ich in 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?
Antworten:
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 das Durchsuchen 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 darüber wissen , wie die Google - Suche funktioniert , wie Sie Google-Artikel lesen „ So funktioniert die Suche “ oder lesen Sie den Artikel „ How Stuff Works: Google Works “.
quelle
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.
quelle
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ückgesandt werden:
Weitere Informationen zur Funktionsweise von Search 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).
quelle
Vor ungefähr 4 Jahren habe ich mir die gleiche Frage gestellt. Aber als ich meine Nachforschungen anstellte, las ich schließlich, dass sie neben der Tatsache, dass sie die Besten der Besten einstellen, 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 haben und arbeiten Sie hart, um ca. 16 GB RAM oder noch besser 32 GB RAM auf diesen Computern zu haben (so viel wie möglich). Denken Sie daran, dass sie durch ein ausgeklügeltes System verbunden sind, das sie entworfen haben. Die Schlüsselidee hierbei 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. Um festzustellen, was sich im RAM befinden soll, kann dasselbe Prinzip wie bei Splay-Bäumen angewendet werden. Stellen Sie sicher, dass die meisten Benutzer im RAM suchen, und speichern Sie die am wenigsten gesuchten Daten auf der Festplatte.
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 Festplatten-Suche.
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.
quelle
Google verwendet ein äußerst ausgeklügeltes Indizierungssystem, parallele Vorgänge und eine Reihe von Lastausgleichstechniken, die für einen Standalone-Standardcomputer 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.
quelle
Im Jahr 2004 haben einige Google-Mitarbeiter einen Artikel veröffentlicht: MapReduce. Von da an haben sie diesen Artikel hundertfach verbessert.
Außerdem verwenden sie Google File System (GFS) , ein verteiltes Dateisystem wie das Hadoop Distribud File System (HDFS), das für ihre Zwecke äußerst optimiert ist. Soweit ich weiß, arbeitet GFS vielleicht tausendmal schneller als HDFS .
quelle
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.
quelle
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.
quelle
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 einem 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 das "Buch" bereits Wort für Wort 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.
quelle
Ich denke, einer der Gründe, warum Google aufgetaucht ist
Auto Complete
und verwendet wurde,AJAX
war ein Geschwindigkeitsproblem. Wenn Sie jetzt tippen, werden Wörter im Hintergrund gesendet, damit Google einen Teil der Arbeit erledigen kann, solange Sie noch nicht fertig sind. Auch Indizes basieren auf mehreren Wortkombinationen (die Sie als Vorschläge am Ende der Seite finden). Derzeit ist die Netzwerkgeschwindigkeit höher als die von Festplatten, und wahrscheinlich befindet sich ein Großteil dieser Indizes im RAM der Server in ihrer Farm.quelle