Hi CK
mehr Platz als die Schroeplsche Volltextdatei???
Ist doch auf voellig logisch. Es fallen viel mehr Metadaten an.
Ähm, eigentlich nicht wenn man zweistufig arbeitet...Ihr habt aber wohl ein anderes Konzept.
Was sind hier Metadaten? Speichert ihr zu jedem _Wort_ Autor, Datum, Link, etc als Strings ab? Es reicht doch eine Referenz aufs Postinginfos in einer Tabelle abzulegen, soviel Zeit kostet das doch wohl nicht.
Ich hab jetzt keine Zeit es durchzurechnen (Party ruft) aber ich fürchte ihr arbeitet etwas uneffektiv.
etwas Mathe...
Es reicht eine Matrix (Postings x Wörter) zu betrachten, und überall ne 1 zu setzen, wo was vorkommt.
Michaels Index listet über die Postings alle Wörter auf (mit Wiederholungen in richtiger Reihenfolge).
Mein Wortindex ginge über die andere Achse und listet die Postings auf die das jeweilige Wort beinhalten.
Prinzip der doppelten Abzählung: Beide Indizes haben gleich viele Einträge resp. 1en (mit Wortwiederholung braucht Michaels Methode sogar noch mehr), da aber Referenzen² im Schnitt kürzer sind als Wörter in ASCII/UNICODE, braucht der 2 Index aber _weniger_ Platz.
Man könnte die Sache noch weitertreiben und mit einem Stämmer arbeiten um die Anzahl der Wörter zu verkleinern. (suchen, suche, suchte = such)
Ob die Wörter im Posting dann mit der richtigen Endungen, Reihenfolge Stoppwörter oder RegExp auftauchen läßt sich im 2 Suchschritt dann wieder bequem im Archiv überprüfen.
Den einzigen Flaschenhals sähe ich bei den Filesystemzugriffen ins Archiv für den 2 Schritt, da würd ich aber die maximale Trefferzahl der suche beschränken, denn wer ernsthaft mehr als 50 Treffer haben will, ist zu faul die Suche zu verfeinern.
Versucht Michaels Script eigentlich den Vollindex im Speicher zu halten, und wenn ja wieviel RAM hat der Server?
Bis nächstes Jahr :)
rolf
²4 Bytes reichen für 2^32 Postings.