Michael Schröpl: Suche nach Forums-Archiv 2002 fehlt

Beitrag lesen

Hi Christian,

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.

Fein. (Täglich beim Rollen?)

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.

Wie invertiert der die Reihenfolge einer ggf. 40 MB großen Datei? (Bzw. wie fügt er vorne ein?)

Ja. Das Problem hierbei ist nur, dass der Indexer in seiner aktuellen
Form aus irgendwelchen unerfindlichen Gruenden einen Memory Leek hat,

Geht das nicht auch irgendwie inkrementell (monatsweise etc.)? (Mehrere Teil-Indexdateien manuell per 'cat' zusammenmischen ist ja nicht das Problem.)

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.

Das Spannende daran wäre, daß der Archiver dann diese Cache-Indexdatei (oder was auch immer) beim Archivieren auch wieder reduzieren müßte. Ich denke, da kommt auf den Forum-Programmierer mehr Arbeit zu als auf den Suche-Programmierer ...

  1. 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.

Wenn [[:alpha:]] erkennbar keine wildcard enthält, dann kannst Du immer noch eine Präfixsuche unter Verwendung des Indexbaums durchführen und dann die sehr viel kleinerer Treffermenge volltextdurchsuchen. (Genau wie bei LIKE mit wildcard rechts.)

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.

Gibt es eine API der Suche, welche von den Forum-Skripten aufgerufen werden müßte?

Viele Grüße
      Michael