hotti: Ich möchte eine Suchfunktion selber konstruieren

Beitrag lesen

hi,

Ich habe noch keine Ahnung, wie ich das ganze umsetzen will/kann. Meine Kenntnisse reichen bloss über HTML, CSS, ein wenig PHP und noch weniger Java.
Ist es utopisch, mit diesen Voraussetzungen eine Webseiten-interne Suchmaschine zu bauen?

Nun, mit PHP kennst Du ja schon eine Programmiersprache, die serverseitig eingesetzt wird. Das ist schonmal ne gute Voraussetzung und PHP wird von vielen Providern auch unterstützt genauso wie MySQL.

Zur Suche gibt es verschiedene Ansätze, z.B. Stichwortsuche und Volltextsuche. Für Erstere müssen die Einzeldokumente entsprechend aufgearbeitet werden, also Worte aus den Texten parsen usw. Daraus wird dann ein Index erstellt und auf diesem "sitzt" das Suchfrontend (PHP) für den Besucher.

Die Volltextsuche hingegen erfordert nur eine geringe Aufarbeitung, z.B. um HTML-Tags zu entfernen, den Text an sich jedoch nicht verändert sondern im Ganzen durchsuchbar macht. Hierzu gäbe es die Möglichkeit, eine Suche direkt ins Dateisystem zu schicken oder auf eine DB zu setzen, wo die Inhalte der Einzelseiten in einer Tabelle liegen. Hierzu wäre zu überlegen, ob der Content neben physisch vorhandenen Dateien also doppelt auf dem Server liegt, oder ob der Content generell aus der DB geladen wird.

Und last but not least gibt es außer MySQL auch noch andere Datenbanken, die ggf. noch ein bischen performanter sind. Auf meiner Site liegen alle HTML-Contents in DB_File, das ist eine einzige Datei. Organisation dieser Datenhaltung:

URL     =>     Content
^Schlüssel     ^Dateiinhalt in HTML

Bei einer Suche wird die komplette Tabelle gescannt und das Perl-Modul Text::Query ermittelt je nach SuchTerm die zugehörigen URLs wenn es Treffer gibt. Mit diesem Modul können komplexe Suchterms im Stil einer jeden InternetSuchmaschine eingegeben werden (z.B. +willhaben -dasnichthaben).

Ein weiteres Thema wäre dann die Relevanz einer Suche. Text::Query kann z.B. ermitteln, wie oft ein Suchbegriff in einem Text vorkommt und danach lässt sich dann das Ergebnis sortieren.

Also, mach Dich mal auf den Weg und guck mal, was die PHP-Gemeinde da so hat.

Hotti