28. Juni 2017
So eine Suchmaschine ist eine feine Sache. Für das große weite Internet gibt es heute den Marktführer Google und Bing, früher Altavista und Yahoo. Doch Betreiber von Webseiten wollen oder müssen ihre eigene Suchmaschinen anbieten. Bei kleinen Seiten ist das einfach realisiert. Werden die Daten in einer Datenbank gespeichert wird einfach eine Volltextsuche in der Datenbank gemacht. Sind die Webseiten statisch, mußte man sich externer Skripte bedienen. Die klappern alle Links einer Website ab und speichern die Daten in einer Datenbank oder in einer Textdatei. Letzteres machte früher der Indexer (oder Crawler bzw. Robot) des von mir favorisierten phpCMS. Doch man kommt da schnell an Grenzen, weil der Suchindex durch immer neue Seiten immer größer wurde und damit die Suche länger dauerte. Zusätzlich hatte ich mit dem Problem zu kämpfen, das sich viele Indexer irgendwann aufhängten, weil die Indizierung endlos dauerte.
Seitdem der Deutsche Schachbund 2013 auf Contao als CMS setzte, haben sich die Probleme die man früher so hatte, mit einem Schlag erledigt. Contao bringt nämlich eine eigene Suchmaschine mit, die auf zwei Arten den Suchindex erneuern kann. Zum einen kann man den Indexer im Backend anstoßen, worauf dieser alle in Contao angelegten Seiten automatisch indiziert. Zum anderen wird der Suchindex automatisch durch Aufruf einer Seite im Frontend aktualisiert. So weit so gut.
Für kleine und mittlere Webseiten ist die interne Suchmaschine eine gute Wahl. Doch bei einer so großen Website wie der des Deutschen Schachbundes sind schnell Grenzen erreicht. Neben rund 1.500 Seiten müssen auch über 9.000 Nachrichten in den Suchindex aufgenommen werden. Dieser schwoll schon nach kurzer Zeit auf eine erhebliche Größe an. Im Januar und Februar dieses Jahres kam es deshalb öfter zu Ausfällen. Es gab dabei Suchen von Besuchern unserer Website, da war die Datenbank mit der Abfrage 30-60 Minuten beschäftigt! Trotzdem alle Datenbanken über 200 Anfragen gleichzeitig zulassen, so war der Server durch die eine Abfrage doch erstmal stark ausgelastet und die anderen Anfragen mußten sich anstellen, wenn diese dieselben Datensätze benutzen wollten. Beispielhaft sind mir zwei Suchen aus der Logdatei in Erinnerung, die im Januar 32 und 29 Minuten dauerten und dabei 130 Millionen und 700 Millionen Zeilen in der Datenbanktabelle prüften!
In den folgenden Wochen probierte ich mehrere Lösungen um solche extrem langen Anfragen zu verhindern. So löschte ich alle paar Tage per Hand den Suchindex. Da der sich automatisch durch Besucher auf den Seiten wieder aufbaute, war der Suchindex schnell wieder voll. Ich ging zur automatischen Löschung alle 24 Stunden über. Doch erst seitdem ich alle 8 Stunden lösche, waren die Suchzeiten wieder erträglich. Obwohl 30-60 Sekunden natürlich immer noch zuviel sind.
Google bietet für Betreiber von Webseiten schon seit vielen Jahren eine benutzerdefinierte Suche an. Dabei bindet man ein wenig Javascriptcode in seine Webseite ein und schon kann man Google als Suchmaschine benutzen. Dabei integriert sich Google fast perfekt in das eigene Layout und man kann zudem noch mit einigen Einstellungen im Google-Konto die benutzerdefinierte Suchmaschine verfeinern. So suchen Sie jetzt bei uns immer auf der gesamten Domain schachbund.de, egal ob Sie sich auf der Seniorenseite, der Rechtseite oder der Seite der Schiedsrichterkommission befinden. Zusätzlich gibt es aber auch drei Links Senioren, SRK und Recht um die Suche auf diese Subdomains zu beschränken.
Die benutzerdefinierte Google-Suchmaschine ist seit heute morgen 6 Uhr aktiv. Die Suche nach Spielern in der DWZ-Datenbank, die bisher über das Suchfeld oben rechts möglich war, habe ich aber entfernt. Ob ich diese Funktion wieder einbaue, hängt auch davon ab, ob die Funktion überhaupt gewünscht ist.
Neben dem deutlichen Geschwindigkeitsvorteil gegenüber der Contao-Suchmaschine, bringt Google auch eine deutliche höhere "Intelligenz" bei den Ergebnissen mit. Der häufig angezeigte Datenmüll von früher sollte der Vergangenheit angehören.
Frank Hoppe
// Archiv: DSB-Nachrichten - Geschäftsstelle // ID 22097