Michael Schröpl: schnelle Suchfunktion des Forums

Beitrag lesen

Hi Heinz,

Wie ich gehört habe, arbeitet das forum nur mit textdateien... Wieso funktioniert dann die suche (auch im archiv) so schnell? Das archiv ist doch teilweise über 90mb groß...

die im Suchformular zu jedem "Suchgebiet" angegebenen Größenangaben sind in der Tat die Dateigrößen der zu durchsuchenden "Indexdateien (CSV-ähnliche, von HTML-Tags befreite, spaltenorientierte Dateien).
Ja, die Suche macht quasi einen "full table scan" (wobei sie im Wesentlichen jede Indexzeile per "split" zerlegt und dann via regular expressions die einzelnen Suchterme zu matchen versucht). Auf diese Weise kann sie beliebige Phrasen finden, nicht nur Worte. Dafür ist sie leider nicht annähernd so schnell, wie ich sie gerne hätte, und vor allem nimmt ihre Suchdauer mit dem Datenvolumen linear zu (das ist der Hauprgrund dafür, weshalb das Archiv in mehrere Indexdateien zerlegt ist und im Formular per Default vor allem die kleinen, qualitativ hochwertigen Dokument-Typen präselektiert sind: Der Anwender kann per Formular-Einstellung die Suchdauer stark beeinflussen). Auf dem vorherigen Server war sie in der Tat ziemlich langsam, aber was Christian später als Server ausgesucht, eingekauft, installiert, konfiguriert und getuned hat, wird mit diesen Anforderungen sehr viel besser fertig.

Über das Skripts gibt es eine ziemlich detaillierte Dokumentation (ca. 50 Kb HTML-Dokument, habe ich vage in Erinnerung). Ich habe damals fast jedes wichtige Perl-Statement gebenchmarked und festgestellt, daß beispielsweise das Splitten der Zeilen etwa so teuer ist wie deren Lesen von der Festplatte ...
Diese Dokumentation hat allerdings "mangels allgemeinem Interesse" (= zu speziell und technisch) nie den Weg zur Veröffentlichung als Feature-Artikel geschafft (leider - denn ich würde bei Fragen wie der Deinen ab und zu gerne mal auf sie verlinken).

Ach ja: Mit dem Jahreswechsel 2002 -> 2003 wird wohl eine neue Indexdatei fällig sein ... und die 2002er-Datei sollte mal in Halbjahre oder gar Quartale zerlegt werden, finde ich.

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.