Suchfunktion

Erstellt am 16.10.2022 Lesedauer 2 - 3 Min.

Eine Webpräsenz kann bereits mit wenigen Seiten durch eine Suchfunktion aufgewertet werden, die den Umweg über Goolge & Co. erspart.

Für eine Suche ist ein Skript erforderlich, mit dem vorhandene Seiten durchsucht und aufgelistet werden.

Für eine Online-Lösung bietet sich PHP an, soll die Suche lokal nutzbar sein, lässt sich das mit Javascript realisieren.

CMS-Systeme bauen für die Suche typischerweise einen Suchindex auf, mit dem die dahinter liegende Datenbank Teffer liefert.  OSE  kommt ohne Datenbank aus, was eine andere Herangehensweise erfordert: Die vorhandenen HTML-Seiten werden durchsucht. Das mag ineffizient erscheinen, doch da HTML eine Textseite ist und von  OSE  (in dieser Konstellation) durch „PHP-include“ in den Dateien Kopf- und Fußbereich ausgespart werden kann, ist das auch ohne Index sehr schnell.

Die Suchseite durchsucht jedes Mal die aktuell vorhandenen Seiten – ohne Cache oder Index. Trotzdem geht das hinreichend schnell: Im meinem Blog »Wortwei.de« dauert die Suche nach „die“ in > 500 Seiten (Stand: 02.07.2022) unmerklich lang: Das Trefferliste ist gefühlt „sofort“ da – auf einem relativ kleinen, günstigen Hosting-Paket.

Wie gut das bei Seiten mit > 1.000 Besuchern/Tag funktioniert, die gleichzeitig suchen, ist ungetestet. Theoretisch bleibt es bei der Geschwindigkeit vergleichbar zu einer Datenbank-Lösung ohne ausgeklügelte Strategie sein. Wann der Aufwand dafür innerhalb einer Webseite gerechtfertigt oder erforderlich ist, dürfte von sehr vielen Faktoren abhängen. Für mich gäbe es nur einen einzigen: Die tatsächliche Wartezeit bei einer Suche.

Für eine erfolgreiche Suche müssen die mit dem Script durchsuchten Verzeichnisse festgelegt werden, in denen der durchsuchbare Inhalt steht. Das Root-Verzeichnis bleibt außen vor: Dort befindet sich typischerweise die Index- und Service-Seiten, die kein Bestandteil der Suche sein müssen oder sein sollten.

Wie gesucht wird

Die Suche ist ziemlich primitiv, doch mutmaßlich für weit über 90% aller Suchzugriffe völlig ausreichend:

  • Gesucht wird im „und-Modus“ nach allen eingegebenen Worten, d.h. alle kommen irgendwo und mindestens ein Mal in den aufgelisteten Dateien vor.
  • Es gibt keine Unterstützung für die Zusammenfassung mehrerer Worte als Gruppe ("…"). Die Gruppe wird „zerlegt“, Anführungszeichen (") aus dem Suchstring entfernt.
  • Es findet keine Seitengruppierung statt. Alle Treffer werden auf einer Seite, „Neuste zuerst“ sortiert, ausgegeben.

Eine Suche nach e e e erfüllt die Mindestforderung von „mindestens drei Zeichen“. Das Ergebnis listet alle Seiten abzüglich der ohne Text bzw. ohne wenigstens einem „e“.

Damit lässt sich bequem und ziemlich zuverlässig zählen, wie viele (Text-)Seiten die Domain — in den durchsuchten Verzeichnissen – hat.