Marc Reichelt: Komprimieralgorithmus in JavaScript?

Beitrag lesen

Hallo Alexander,

  1. Kennst Du die Javascript-basierende offline-Suche in SelfHTML 8.x? Wäre die vielleicht hilfreich?

Kenne ich. Ich programmiere am Nachfolger. ;-)
Daher kann ich den Code aus dem Vorgänger auch nicht verwenden (proprietär).

  1. Warum willst Du die Dokumente komprimieren? Geht der Platz auf Deiner Festplatte zur Neige oder bist Du durch irgendein kleineres Medium (Floppy, ZIP-Drive, USB-Stick, CDROM) im Platz oder im Datendurchsatz beschränkt?

Es geht um größere Datenmengen (Volltext-Index) der neuen Suche.
Die Index-Dateien werden sowieso standardmäßig in der SELFHTML-Zip-Datei übertragen und damit vermutlich schon besser komprimiert als jeder JS-Algorithmus es könnte.
Die Suche wird als SourceForge-Projekt realisiert und soll damit auch bei anderen Projekten laufen (beispielsweise Offline-Dokumentationen, Webseiten auf CDROM oder Mini-CDROM, Diskette wohl eher weniger), wo teilweise der Speicherplatz recht begrenzt ist.

  1. Dir ist klar, dass Du mit der Kompression Platz gegen Rechenzeit tauschst? Insbesondere Bit-Operationen, die Du zur Kompression brauchst, sind in Javascript umständlich und alles andere als schnell. Das könnte auf einem schwachen Rechner mit großen Datenmengen schonmal zu komatösem Verhalten führen.

Ja, dessen bin ich mir bewusst.
Genau deshalb gibt es zwei Indizes: Einen für die schnelle Suche (Präfix-basiert) und einen für den Volltextindex. Beide Indizes werden jeweils schön auf mehrere Dateien verteilt und dann erst nach Bedarf nachgeladen.

Der JS-Kompressionsalgorithmus soll dafür sorgen, dass die JS-Dateien des Volltextindexes auch im dekomprimierten Zustand nicht allzugroß werden.

Da der Volltextindex nur für die Volltextsuche (beispielsweise die feste Wortfolge "dies ist ein" in "Dies ist ein toller Film") gedacht ist, und er den Gesamtindex auf das 10fache des ursprünglich für die normale Suche benötigten Indexes vergrößert, bin ich dafür dieses Feature fallen zu lassen und stattdessen auf die Online-Suche zu verweisen.

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
panic("Oh boy, that early out of memory?");
        linux-2.2.16/arch/mips/mm/init.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)