YaCy - P2P Suchmaschine

YaCy_logo
YaCy ist eine alternative Suchmaschine, die ein etwas anderes Konzept verfolgt, als Google, Bing, DuckDuckGo und co. YaCy setzt auf ein dezentrales Peer-to-Peer Netzwerk. Das bedeutet es gibt keine Serverfarm, die von einem Anbieter gestellt wird, sondern jeder Client trägt seinen Teil bei. Die Suche im Netz setzt also eine auf dem PC installierte Software voraus. Ist die Anwendung einmal installiert, funktioniert sie folgendermaßen:

Im Hintergrund wird ein Webserver gestartet, der die Suche hostet. Anschließen kann im Browser über http://localhost:8090 auf die Suche zugegriffen werden. Startet man nun eine Suchanfrage, so kontaktiert YaCy andere Rechner, die ebenfalls die Software installiert haben, sich als Seeder (also als Server) anbieten und einen Teil der indexierten Daten lokal gespeichert haben, und fragt sie nach Resultaten. Diese werden dann in der Suchmaske ausgegeben.

Der Vorteil an diesem System liegt auf der Hand: Nicht nur ist es sehr anonym und frei von der Möglichkeit Seiten aus dem Index zu entfernen, es ist außerdem auch sehr kostengünstig. Es gibt keinen Dienstleister, der eine Infrastruktur zur Verfügung stellen muss. Es muss nur genug Leute geben, die diesen Service ebenfalls nutzen. Diese Leute können dann einen großen Index bieten und selbst Seiten indexieren (crawlen).

Damit dieses System allerdings funktioniert, müssen einige Voraussetzungen erfüllt sein. Zunächst einmal muss dem Entwicklerteam klar sein, dass das Internet zum größten Teil nicht aus Leuten wie ihnen besteht - den Freaks - sondern aus 0815-Nutzern, die wissen, wie man den Internet Explorer öffnet und wie man dieses Googel bedient. Und genau hier sehe ich das Problem bei YaCy. Mal davon abgesehen, dass es bei meinen Tests regelmäßig abgestürzt ist und sehr langsam war, ist es einfach viel zu komplex. Niemand will sich Stundenlang mit einer Suchmaschine beschäftigen müssen.

Das ganze fängt schon auf der Website des Projekts an. Man wird direkt auf der Startseite mit viel Text konfrontiert. Das ist wohl gute Schule bei Open Source Projekten, schreckt jedoch den Laien eher ab. Was fehlt ist eine Demonstration des Dienstes - Sprich: die Suche. Natürlich ist das Ziel der Download der Software um das Projekt voran zu treiben, trotzdem sollte der Hauptaugenmerk nicht darauf gerichtet sein. Gefällt einem Nutzer das Projekt, so wird er von alleine versuchen, den Dienst zu unterstützen. Und wenn man dafür nur eine kostenlose Datei runterladen muss, warum denn nicht.

Update 26. November: Ich habe eine Demo gefunden! Keine Ahnung, ob sie schon immer da war, gut sichtbar ist sie allerdings nicht. Unter dem Menüpunkt “Search Portal” findet man letztendlich einen Link zur Demo. Dort wird dann auch noch einmal hervorgehoben wie wichtig es ist, dass man doch den Client herunterlädt. Und auf viele Nutzer scheint die Demo wohl auch nicht ausgelegt zu sein. Ich bekomme zumindest manchmal einen 503-Error. Das ist natürlich optimal für eine Demonstration.

Und hier setzt schon der zweite Punkt an: Der Download-Button ist zwar ganz oben, jedoch in der Sidebar und nicht vom Rest des Contents abgehoben. Ich habe beispielsweise mehrere Sekunden gebraucht, bis ich den Button gefunden habe. Das klingt erst einmal nicht tragisch, macht aber trotzdem etwas aus. Das nächste Problem ist dann die Auswahl des Betriebssystems. Jedem ist klar, welches System er drauf hat, oder? Falsch. Anhand des User Agents sollte der Download für das aktuell installierte Betriebssystem deutlich hervorgehoben werden. So verhindert man, dass sich der Nutzer denkt: “Das ist mir eh zu kompliziert. Was ist überhaupt dieses GNU/Linux?”

Screen Shot 2014-05-27 at 17.30.44
Gut finde ich, dass sowohl Webserver als auch Datenbank bereits in YaCy integriert sind. Das sorgt für eine schnelle und reibungslose Installation. Dass das ganze auf localhost unter Port 8090 läuft, ist nicht gerade schön, ich bin mir allerdings nicht sicher, ob man das so einfach umgehen kann. (Kann man die hosts-Datei unter Windows einfach so erweitern? Oder nimmt man eine “Jumppage”, der auf localhost:8090 weiterleitet, wenn dieser erreichbar ist?)

Pflücken wir doch mal das Interface auseinander. Die Suchmaske sieht schön und aufgeräumt aus. Bis man dann auf “Search” drückt. Die Resultate scheinen nicht im Mittelpunkt zu stehen, da der Filterbereich links sehr dominant ist. Zudem werden sie nicht übersichtlich präsentiert. Meistens erscheint nur der Seitentitel ohne einen Textausschnitt, die Keywords werden nicht hervorgehoben, das Design sieht “hingefrickelt” und überladen aus und ist allgemein nicht sehr ansprechend gestaltet. Will man eine neue Suche starten, indem man auf das YaCy-Logo oben links drückt, kommt man nicht wie erwartet auf die Eingabemaske, sondern auf die Startseite des Projekts. Dieser Link ist wohl absolut fehl am Platz.

yace

Auch die Bildersuche ist nicht sonderlich ansprechend. Man bekommt bei einem Mouseover keine weiterführenden Informationen (erst nach einem Klick - und dann auch nur unzureichend), die Navigation unten ist nicht vom Inhalt gelöst, die Bilder werden immer gestreckt und gestaucht, egal welches Format sie haben und einige Elemente überlappen andere. Es macht also nicht wirklich Spaß damit zu suchen. Mal ganz davon abgesehen, dass wohl noch keine wirklich brauchbaren Suchergebnisse erscheinen. Da es das Projekt allerdings schon seit 2005 gibt, würde ich bessere Ergebnisse erwarten.

yace
Kommen wir nun zum Administrations-Interface. Auch das ist vollkommen überladen und erschlägt einen regelrecht mit Informationen. Doch darauf möchte ich hier nicht eingehen. In der Standard-Konfiguration ist YaCy so konfiguriert, dass es nur als Client arbeitet. Es verbindet sich also mit anderen Rechnern und sucht dort. Das ließe sich auch - wie vorher schon angemerkt - über eine Website realisieren. Zwar versucht die Software (vermutlich per UPnP) das benötigte Port-Forwarding zu konfigurieren, damit es auch als Server arbeiten kann, doch das ist allgemein der falsche Weg (vor allem, weil es von den meisten Heimroutern unterbunden wird). Es existieren genug alternative Konzepte, die ohne Port-Forwarding auskommen und das sollte schnellstens in YaCy implementiert werden. Das ganze bringt nunmal nichts, wenn man die User zwar Clients installieren lässt, diese aber keinen Mehrwert für die Community haben. Dann kann man gleich einen Webservice anbieten und muss den Nutzer keine Software installieren lassen.

Auch sollte YaCy mehr Wert auf den Crawler legen. Dieser springt aktuell nur an, wenn man ihm sagt “Crawle mal diese Domain”. Das kann bei einer Suchmaschine nicht die einzige Möglichkeit sein. Ich verstehe, dass man bei einem Client nicht standardmäßig einen aggressiven Crawler laufen lassen kann, der das ganze Internet nach dubiosen Websites absucht, trotzdem sollte man dem User die Möglichkeit geben seinen PC als Crawler zur Verfügung zu stellen. Ich stelle mir das so vor, dass es eine globale Crawl-Liste gibt, die dann von beliebigen Clients abgearbeitet werden kann. Dort sollte auch berücksichtigt werden, dass Websites aktuell gehalten werden müssen. Momentan funktioniert das ganze nämlich eher weniger.

Mein Fazit: Die Idee ist wundervoll. Wie so oft bei Projekten, die nicht von einer Firma geleitet werden, bin ich aber von der Umsetzung enttäuscht. Auch hier kann man ganz klar die Vor- und Nachteile von Open Source sehen. Wenn YaCy erfolg haben möchte, sollten sie einige Punkte noch einmal überdenken. Natürlich habe auch ich die Weisheit nicht mit dem Löffel gegessen, trotzdem glaube ich, dass die Behebung der oben genannten Punkte das Projekt um einiges weiterbringen würden.