WIe programmiert man eine Suchmaschine wie Google?
Man kopiert die Websites und bringt sie in ein leichter handhabbares Format. So erlaubt Google beispielsweise nicht die Suche nach Wortteilen. Ein Token ist also ein vollständiges Wort. Statt also Buchstaben in einem Text zu speichern, speichert man Worte. Genauso wie ein Buchstabe einen festzugewiesenen ASCII-Code hat, hat ein Wort nun einen zugewiesenen Wert. Das Wort "er" besteht aus zwei ASCII-Codes (2 Bytes) oder einem Wort-Code (der vermutlich 4 oder 8 Byte groß ist). Man muss für das Wort "er" also mehr speichern als nur die ASCII-Codes. Aber man braucht auch nur 4 (bzw. 8) Bytes für das Wort Herzklappeninsuffizenz, Suchmaschine oder Donaudampfschifffahrtsgesellschaft. Die Anzahl der Leerzeichen zwischen den Worten braucht man nicht, das kann man also ignorieren.
Nun führt man für jedes Wort eine Liste mit den Dokumenten, in denen die Worte auftreten. Auch die Dokumente werden durchnummeriert und in den Listen einfach die Nummern gespeichert.
Wenn ich also jetzt nach "Postkarte Briefmarke" suche, bekomme ich zwei Listen heraus, die wo "Postkarte" drin ist und die, in denen "Briefmarke" drin ist. Nun gucke ich, welche Nummern in beiden Listen auftauchen, diese sind mein Ergebnis.
Das Ergebnis ist allerdings bisher noch willkürlich. Das besondere von Google war ja, dass zusätzlich die Links auf ein Dokument gezählt wurden. Also wenn ich ein Dokument lese und es einen Link enthält, erhöhe ich den Zähler im verlinkten Dokument (und lese es ein, falls noch nicht vorhanden).
Ich sortiere nun also mein Ergebnis anhand der Verlinkungen und gebe die Ergebnisse in der Reihenfolge aus.
Fertig ist die Suchmaschine. Man braucht lediglich ein, zwei Tage Programmieraufwand und das eine oder andere Rechenzentrum. ;)