Immer noch voll im Projektstreß (leider) und zu perfektionistisch (auch leider) habe ich lieber nichts als was Unausgegorenes geschrieben.
Na ja, hilft nichts. Jetzt ist es spät und ungenau geworden.
In Kürze: Yacy ist eine prima Idee, aber nichts für den Durchschnittshaushalt. Ich habe ein paar interessante Startseiten gecrawled und binnen kürzester Zeit hatte ich einige Hunderttausend Einträge in der Index-Queue.
Ach so, zum Verständnis: Biem Betrieb einer Suchmaschine gibt man eine Start-URL an und sagt dem System, wie es vorgehen soll. Beispielhaft und vereinfacht:
Mein Server soll, von der Start-URL „http://www.meinestarturl.de/index.html“ ausgehend, diese Seite (0. Ebene) und alle verlinkten Seiten (1. Ebene) und alle auf diesen Seiten verlinkten Seiten (2. Ebene) indizieren.
Zuerst findet der Crawl, das „Kriechen“ statt: Alle Links in Ebene 0 (der Startseite) werden in eine Liste geschrieben mit dem Vermerk, daß ihnen 2 Ebenen weit gefolgt wird. Dann werden die Links in der Liste durchgegangen, alle Seiten der 1. Ebene angesprungen, alle Links in die Liste „herausgeschrieben“ mit dem Vermerk, daß ihnen 1 Ebene weit zu folgen ist. Dann werden auch diese URLs durchgegangen, alle Links herausgeschrieben… ihr versteht schon. Das Resultat des Crawlers ist also eine große Liste von URLs.
Jetzt kommt der Indexer zum Zug, nimmt sich, eine nach der anderen, die Seiten in der großen Crawlliste vor, ruft sie auf und indiziert sie (vorausgesetzt, daß die Seite vorhanden, nicht zugriffsgeschützt und nicht von der robots.txt verboten ist). Beim Indizieren werden alle in der Seite vorhandenen Worte, die nicht zu trivial sind („ein“, „the“, „la“, „in“…), mit der Seiten-Adresse in eine Datenbank geschrieben.
Später, wenn man die Suchmaschine ein Wort suchen läßt, schaut der Server in seinen Tabellen nach und findet vielleicht das gesuchte „Lieschen“ auf sieben Seiten und gibt in der Ergebnisseite die sieben URLs aus.
Das war jetzt stark vereinfacht, aber hoffentlich nachvollziehbar, die Funktionsweise einer Suchmaschine im Allgemeinen.
Das Problem im Hausgebrauch ist, daß der Index Pi mal Daumen 30% bis 40% der Größe der indizierten Seiten als Speicherplatz braucht. Mit einer DLS-Anbindung kam ich innerhalb von vier Wochen zu einem Index von 5 GB. Eigentlich wäre das kein Problem, heutzutage sind die Festplatten groß genug. Allerdings will man ja auch bald mal was finden und der komplette Suchindex muß sich im schnellen Zugriff befinden. Diese 5 GB müssen irgendwo im RAM oder einer Auslagerungsdatei liegen und das kostet viel Performance.
Die Yacy-VM verlangte, immer mehr Hauptspeicher zugeteilt zu bekommen. Irgendwann war die Grenze erreicht, Yacy stürzte mir zu oft ab und ich mußte den Index verkleinern.
Später mehr dazu…
