Christian Kruse: Suche nach Forums-Archiv 2002 fehlt

Beitrag lesen

Hoi Michael,

Bei SELFHTML 8.0 war das relativ einfach. Zu SELFHTML 7.0
existierte ein Indexer-Programm, welches die entsprechende
Indexdatei erstellte (und dabei jedes Dokument von SELFHTML 8.0
entsprechend zu einem Thread des Archivs behandelte, insbesondere
jeden mit <h1> markierten Absatz entsprechend eines
Postings - die Zieladressen der Suchmaschine sind ja nicht
Dokumente, sondern Link-Targets!). Dieses Programm wurde
gemäß der Formatänderungen der SELFHTML-8.0-Dokumente angepaßt
und einmal laufen gelassen, und schon war SELFHTML 8.0
durchsuchbar.

Jo, genau.

Für das Archiv müßte ebenfalls ein Mechanismus her, der solche
Index-Einträge erstellen würde.

Der existiert schon.

Allerdings befindet sich das Archiv in ständigem Fluß - jede
Sekunde kann durch den automatischen Archivierungsmechanismus
der Forum-Software ein neuer Thread (oder gar mehrere) dorthin
übernommen werden.
Man müßte also entweder periodisch einen Indexer über das Archiv
(oder einen entsprechenden Teil desselben) laufen und die
entsprechende Indexdatei immer wieder neu bilden lassen,

Das wird so momentan gemacht.

oder - eleganter - der Forum- Software beibringen, als
Seiteneffekt des Archivierens auch gleich die entsprechenden
Indexeinträge zu erzeugen und der Indexdatei hinzuzufügen.

Im Idealfall soll das bei der neuen Suche passieren. Aber da muessen
wir noch sehen, was passiert ;-)

Dies ist aber nicht beliebig einfach. Denn die Indexdateien
sind - was das Forum-Archiv angeht - ganz bewußt in umgekehrter
historischer Reihen-folge sortiert, damit im Falle des
vorzeitigen Erreichens des Treffer-Limits jeweils die neuesten
und nicht die ältesten Treffer angezeigt werden. Diese
Sortierung wurde für die alten Jahrgänge manuell (UNIX-sort)
erzeugt - für inkrementell einfließende neue Daten wäre noch ein
entsprechender Mechanismus zu erfinden, falls dieses Feature
weiter unterstützt werden sollte.

Der aktuelle Indexer muss nur einen Parameter aendern. Dazu bin ich
schlicht und ergreifend noch nicht gekommen.

Außerdem sind die Einträge seit August ans Ende der Indexdatei
gehängt worden:

S. O.

Beides ist vermutlich das Ergebnis eines in unregelmäßigen
Abständen manuell gestarteten Indexer-Programms.

Nee. Das Ergebnis eines Cronjobs.

Dies könnte man für den kompletten Jahrgang 2001 noch mal
wiederholen, um auch die erste Dezemberwoche des
Archivs noch durchsuchbar zu machen - und mit ihm könnte man auch
weiterhin ab und zu mal einen weiteren Teil des angelaufenen
Archivs indexen.

Ja. Das Problem hierbei ist nur, dass der Indexer in seiner aktuellen
Form aus irgendwelchen unerfindlichen Gruenden einen Memory Leek hat,
sobald er das besagte Datum erreicht -- aber auch erst da!
Ich weiss nicht, ob das ein Fehler in Perl, im Modul oder im
XML-Parser ist, auch wenn ich das letztere vermute -- Andy hatte
mal ein aehnliches Problem.

Ganz auf dem aktuellen Stand wird die Suche in diese Modus
natürlich nie sein; die 8 Tage, nach denen Dir das Fehlen der
2002er-Indexdatei aufgefallen ist, könnten durchaus ein
realistischer Abstand zwischen zwei Indexerläufen sein.

Nein, das Archiv 2002 habe ich noch nicht eingebunden. Und ich weiss
auch nicht, ob ich mir die Muehe noch machen sollte oder ob ich erst
den Indexer umschreibe.

Der Ansatz einer inkrementellen Indexierung wäre insofern der
mächtigere, als er sogar erlauben würde, bereits beim Eintragen
eines Postings dessen Inhalt zu indexen - an welcher Stelle der
Forums-Software eine Änderung gemacht werden muß, ist ja
vielleicht nicht kriegsentscheidend.

Auch das ist uU etwas, was die neue Suche machen soll. Aber das
genaue Konzept habe ich gerade nicht zur Hand.

In diesem Falle könnte nämlich sogar der aktuelle Forum-Inhalt
durchsucht werden - was vielleicht wenigstens teilweise
verhindern könnte, daß dieselbe Frage in kurzer Zeit mehrfach
gestellt wird ... ;-)

Wers glaubt... ;-)

In ferner Zukunft wäre vielleicht denkbar, ein eingetipptes
Posting erst mal mit einer Stoppwortliste von sprachlichem
Ballast zu befreien, mit den übrig bleibenden Worten eine Suche
im aktuellen Forum durchzuführen und neben der Preview-Version
des Postings (vor dem endgültigen Eintragen) gleich eine Liste
von Links mit themenverwandten Seiten des Self-Universums
anzubieten - moderne Browser versuchen ja auch, zu erraten, was
der DAU an der Tastatur eigentlich meinte ... <eg>

Die Stoppwort-Liste ist bei der neuen Suche eh mit drin.

Zu bedenken ist aber insbesondere, daß die derzeit eingesetzte
Form der Self-Suche nach meiner Einschätzung keine lange Zukunft
hat. Es wird seit einiger Zeit an einer neuen Realisierungsform
der Suche gearbeitet, die auf einer grundsätzlich anderen Form
der Datenspeicherung basieren soll (mySQL-Datenbank) und
demzufolge für Stichwortsuchvorgänge signifikant schneller sein
wird (logarithmischer Aufwand, verglichen mit dem "full table
scan" der ektuellen Lösung). Dafür muß für die vom bishe-
rigen Skript relativ leicht zu realisierende Phrasensuche eine
separate Nachverarbeitung realisiert werden - und ob die
zusätzlichen existierenden Optionen wie die Verwendung regulärer
Ausdrücke usw. sich so elegant in SQL umsetzen lassen (oder ob
diese Suchmaschine erst mal weniger Bedienungs-
komfort bekommen wird), wird auch erst herauszufinden sein.

Nein, RegExe werden nicht mehr mit dabei sein. Aus zwei einfachen
Gruenden:

  1. MySQL unterstuetzt keine richtigen RegExe, nur *teilweise*
       POSIX-RegExe

  2. Bei einem RegEx muss in *jedem* Fall eine Volltext-Suche gemacht
       werden. Beispiel: Suchbegriff ist folgender RegEx:

"[[:alpha:]]\s+[[:alpha:]]"

Tja, nun *kann* der RegEx nur auf 2 Worte matchen. Das Ergebnis
   waere, dass keine Results aus der DB zurueck kommen und wir wieder
   eine komplette Volltext-Suche machen muessten.

Auf jeden Fall ist das ein Haufen Arbeit für die dort aktiven
Entwickler.

Ja.

Da diese Realisierung allerdings offenbar noch etwas davon
entfernt ist, einsatzbereit zu sein, bin ich nicht sicher, ob
für sie bereits entsprechende Betriebskonzepte und Datenformate
endgültig definiert sind.

Sie sind.

Dies jedoch wäre eine Voraussetzung dafür, daß die Generierung von
"Indexeinträgen" oder was auch immer durch die Forums-Software in
einer zu der entsprechenden Schnittstelle kompatiblen Form
erledigt werden kann

In der Tat.

Unter diesen Randbedingungen ist es fraglich, ob man momentan
noch eine Lösung in die Forum-Software einbauen sollte, welche
das 'alte' Format der Indexdateien unterstützt (und sich dabei
auch noch mit dem Sortierungsproblem herumschlagen will, was
unter mySQL keines mehr sein wird, weil es in SQL mit 'ORDER BY'
für die Treffer erschlagen wird).

Nein, wird definitiv nicht gemacht, weil nicht sinnvoll (IMHO).

Die Suche im Archiv des Forums ist nach meiner Einschätzung eine
ziemlich große und relativ komplexe Baustelle, weil das Ziel der
nächsten Stufe ein ziemlich hohes ist (auch ohne Durchsuchbarkeit
des Forums selbst).

Ja, das ist richtig.

Vielleicht schreiben die Entwickler der nächsten Suchfunktion
auch noch ein paar Zeilen hierzu?

Das ist hiermit geschehen ;-) Zumindest einer der Entwickler. Ich
hoffe nur, ich habe hier keinen Unfug erzaehlt. Wenn doch, moege man
mich berichtigen.

Gruesse,
 CK