Wie Suchmaschinen ihren Index erstellen: Geschwindigkeit, Gewicht und Hashing

8

Spinnen hören nicht auf. Sie kriechen. Sie finden neue Seiten, aktualisieren alte und beenden die Arbeit nie wirklich. Das Web verändert sich zu schnell, um es fertigzustellen. Aber sobald die Daten erfasst sind, beginnt die eigentliche Arbeit. Der Motor muss es speichern. Es muss durchsuchbar sein.

Dabei wird nicht nur Text in einen Ordner abgelegt. Hier sind zwei Dinge wichtig. Erstens: Welche Daten speichern Sie? Zweitens: Wie organisieren Sie es?

Warum einfache Speicherung fehlschlägt

Stellen Sie sich eine Suchmaschine vor, die sich nur ein Wort und die URL merkt, unter der es erschien. Nutzlos. Sie würden das gleiche Ergebnis für „Bank“ auf einer Finanzseite und „Bank“ auf einer Flussufer-Tourismusseite erhalten. Kein Kontext. Kein Ranking.

Ein echter Motor braucht mehr. Es verfolgt die Frequenz. Es zählt, wie oft ein Begriff vorkommt. Es schaut auf die Position. Wörter im Titel sind wichtiger als Wörter in der Fußzeile. Wörter in Links sind wichtig. Wörter in Meta-Tags sind wichtig. Jeder Faktor erhält ein Gewicht.

Diese Gewichtung ist proprietär. Google verwendet eine Formel. Bing verwendet einen anderen. Aus diesem Grund liefert dieselbe Abfrage auf verschiedenen Plattformen unterschiedliche Ergebnisse. Es gibt keine einheitliche „richtige“ Reihenfolge der Ergebnisse. Es gibt lediglich unterschiedliche Algorithmen, die unterschiedliche Signale priorisieren.

Daten dicht packen

Lagerraum kostet Geld. Ingenieure komprimieren die Daten. Das Original-Whitepaper von Google beschreibt die Verwendung von nur zwei Bytes (16 Bits) zum Speichern komplexer Metadaten für einen einzelnen Worttreffer.

In diesen 16 Bits:
– 2 bis 3 Bits könnten die Großschreibung verfolgen
– 2 bis 3 Bit erfassen möglicherweise die Schriftgröße
– 2 bis 3 Bits können die Position relativ zu anderen Wörtern verfolgen

Es scheint unglaublich klein. Dennoch enthält es genügend Informationen, um eine Seite effektiv zu bewerten. Die Daten werden komprimiert. Es ist verschlüsselt. Dann ist es bereit für den Index.

Die Hash-Tabellenlösung

Ein Index hat eine Aufgabe: Geschwindigkeit. Daten sofort finden. Auch bei komplexen Anfragen.

Sie denken vielleicht, dass die alphabetische Reihenfolge funktioniert. Das ist nicht der Fall. Im Englischen gibt es überall „M“-Wörter. „X“-Wörter sind selten. Ein Wörterbuch spiegelt dies wider. M ist dick. X ist dünn. Aufgrund des Verteilungsungleichgewichts dauert die Suche nach „M“ in einem schlecht optimierten System länger als die Suche nach „X“.

Hashing behebt dieses Problem.

Beim Hashing wird auf jedes Wort eine Formel angewendet. Es wandelt das Wort in einen numerischen Wert um. Dieser Wert verteilt Einträge gleichmäßig auf eine feste Anzahl von Buckets. Es ignoriert das Alphabet. Es ignoriert die sprachliche Häufigkeit. Es entsteht eine künstliche Einheitlichkeit.

Die Hash-Tabelle enthält den numerischen Schlüssel und einen Zeiger auf die tatsächlichen Daten. Die Daten selbst können so effizient wie möglich gespeichert werden. Der Zeiger schließt die Lücke zwischen der schnellen Suche und dem umfangreichen Speicher.

Diese Trennung ist der Schlüssel. Sie scannen nicht die gesamte Datenbank. Sie berechnen den Hash, gehen direkt zum Bucket und ziehen den Zeiger. Es ist direkt. Es ist schnell. Es bewältigt die Last.

Warum das für Sie wichtig ist

Wenn Sie das nächste Mal eine Abfrage eingeben und Ergebnisse in Millisekunden erhalten, denken Sie an die Hash-Tabelle. Denken Sie an die Gewichtung. Denken Sie an die Komprimierung. Das Web ist chaotisch. Es ist chaotisch. Aber der Index zähmt es. Es verwandelt Lärm in Ordnung.

Die Spinnen kriechen weiter. Der Index wächst weiter. Und die Algorithmen optimieren ständig. Denn wenn sie aufhören, merkt man es.