Stefan Muenz: Lokale Suchmaschine

Beitrag lesen

Hallo Andreas

Dateinamen der Seite mit readdir() in einen Array laden, die Dateien nacheinander mit fopen() öffenen, dann mit einem Regulären Ausdruck nach dem Suchbegriff durchsuchen, wieder schließen...

Das ist die schlichteste und ineffektivste Methode. Bei vergleichsweise statischen Inhalten, also solchen, die sich nicht dauern, ist es in jedem Fall besser, mit einem Index zu arbeiten. Dazu brauchst du zwei Scripts: ein reines Arbeitsscript, das wie oben beschrieben verzeichnisweise aus allen Seiten, die durchsuchbar sein sollen, die Daten herausliest und in irgendeine, fuer das Suchscript auslesbare Datei schreibt, und zwar nach irgendeiner Konvention, die das Suchscript beim Auslesen anwenden kann. Das Arbeitsscript muss dann jedesmal angestossen werden, wenn der durchsuchbare Datenbestand aktualisiert werden soll. (An dieser Stelle zeigt sich uebrigens ein typischer Vorteil von Perl - man kann damit eben auch problemlos mal reine, kommandozeilenorientierte Arbeitsscripts schreiben ... jaja,. ich weiss, "irgendwie" geht das mit PHP auch *g*).

Die Index-Datei mit den durchsuchbaren Daten kann ruhig eine gewisse Groesse bekommen. Ein paar Megabyte sind voellig unkritisch und lassen sich auf modernen Rechnern in Bruchteilen von Sekunden sequentiell durchsuchen.

  • ich finde auch html-Tags
  • bei .php Seiten finde ich auch den ganzen php-Code.
    Wahrscheinlich kann man die letzten beiden Punkte durch einen guten regulären Ausdruck ausklammern, aber der erste erscheint mir sehr schwerwiegend.

Dafuer gibt es Module oder Funktionen. In PHP gibt es z.B. so eine strip-all-tags-Funktion. Die Muehe, die eingelesenen Daten noch ein bischen zu bearbeiten, um nur die wirklichen Nutzdaten herauszuziehen, solltest du dir auf jeden Fall machen!

viele Gruesse
  Stefan Muenz