De:YaCyPeerStructure

Aus YaCyWiki
Wechseln zu: Navigation, Suche

Hier wird eine grobe Übersicht über die einzelnen Bestandteile von YaCy gegeben.

Module

Man kann eine Suchmaschiene in verschiedene Bestandteile aufteilen:

Crawler

Auch Spider oder Bot genannt, geht durch das Netz und lädt die einzelnen Seiten. Damit viele Seiten gleichzeitig verarbeitet werden können arbeiten mehere Crawler parallel Aufträge ab. Bei YaCy besteht er noch aus weiteren Komponenten.

Loader

Er kümmert sich um das Laden des Dokumentes aus dem WWW. Dabei beachtet er ob die Seite überhaupt geladen werden darf oder ob sie bereits vorliegt. Siehe Der YaCy Bot crawlt meine Seiten. Was soll ich tun? Der Loader kann sich auch aus einem Cache bedienen (siehe HTCACHE).

Parser

Er weiß wie bestimmte Dateien aufgebaut sind und analysiert das Dokument und isoliert die suchbaren Worte. z.B. HTML Seiten. Um eine Liste der aktuell verfügbaren Parser zu sehen, schaut man am besten ins Source Repository:

http://svn.berlios.de/wsvn/yacy/trunk/source/de/anomic/document/parser/

Der Parser bestimmt auch eine Reihe von Attributen, die ins Ranking einfliessen. Diese können Dokument-spezifisch (Größe, Anzahl der Wörter, Anzahl der Links, Art der URL, Art des Dokuments, Sprache des Dokuments etc.) und spezifisch zum Dokument (Wort kommt an einer bestimmten Stelle vor, z.B. Titel, Überschrift, betont,...) sein.

Indexierer

Die im Parser bestimmten Wörter werden zusammen mit ihren Ranking-Attributen in eine spezielle Datenstruktur eingepflegt und ein sog. Rewerse Word Index (RWI) aufgebaut. Das Indexieren ist, mathematisch formuliert, eine Umkehrung der Dokument->Wort Relation. Einem Wort wird also zugeordnet in welchen Dokumenten es vorkommt. Die Datenstrukur des RWI ist nicht aus einem externen Projekt (z.B. Lucene) entlehnt, sondern speziell für die Anforderungen an die Index-Verteilung entworfen worden. Index-Daten werden zunächst in Dev:Segments unterteilt, in dem sich dann einzelne Dev:Index-Zellen befinden.

Ranking

Verarbeitung der beim Parsen ermittelten Ranking-Daten. Diese Daten werden in YaCy generisch abgelegt, d.h. der User hat keinen Einfluss darauf welche Attribute fürs Ranking gespeichert werden. Zudem werden sie normalisiert, so dass die Attribute über die Peers hinweg vergleichbar sind. Beim Ranking während einer Suche werden dann Peer-spezifische Ranking-Parameter angewendet, d.h. eine Menge von Koeffizienten für die Details der Ranking-Werte werden angewendet. Bei einer remote-Suche werden dem ausführenden Peer die gewünschten Ranking-Attribute mitgeteilt, so dass auch bei einer Remote Suche ein pesönliches Ranking-Schema möglich ist.

Searching

  • Durchschnitt des RWI bilden
  • Freitext
  • Erweitertes Suchformular

Resourcen-Manager

  • Datenbank
  • RAM
  • Threads

Steuerung

  • SOAP
  • JSON

Datenbank

YaCy benutzt keine externe Datenbank sondern eine eigene Datenstruktur für die Indexdaten. Das ist zum einen notwendig weil die RWIs (s.o.) nicht in ein Tabellenorientiertes Datenmodell passen und zum anderen ist es sinnvoll weil mit einer spezialisierten Datenstruktur die speziellen Anforderungen einer Suchmaschine effizienter bearbeitet werden können. Andere Suchmaschinen-Software macht das ganz ähnlich. In YaCy gibt es ausserdem die Anforderung, dass Fragmente des Indexes leicht aus einerm Index herauslösbar sein müssen, damit diese über die Peers hinweg gesendet werden können.

P2P Servant

HTTP Proxy

HTTP Server

Webfrontend

Wiki

Fileshare

Daten

Je YaCy Netzwerk werden die folgenden Daten unter .../DATA/ gespeichert

index

URL

  • liste
  • queues
  • stacks

jobs

Netz

Alle Peers (hier Seeds) werden abgespeichert, damit man sich bei einem erneuten Start wieder schnell mit ihnen verbinden kann.

HTCache

Speicher für die durch den Crawler gesammelten Dokumente