Mailinglisten-Archive |
Am Mittwoch 11 April 2001 12:33 schrieb Joebi bei Strato: > Hallo, > ich bin neu in der Liste. > Ich hätte da mal eine Frage, > wir sind eine Webfirma auf LAMP-Basis und haben eine Nachfrage > für eine Datenbank mit riesigen Textmengen (ca. 10.000 Texte a 700KByte > jährlich wachsend). 10.000 Texte sind Kinderkram für GLIMPSE .... unter www.webglimpse.org einfach glimpse C-Programm kompilieren - das PERL Skript in das ../cgi-bin/ Verzeichnis laden, die Variablen anpassen - das war's .... Glimpse läuft sogar 64 - bittig, d.h. es kann auch Indizes > 2 Gigabyte erzeugen, das heißt man kann darin Inhalte unbegrenzt indizieren (vorher ca. 500 Gigabyte). Hier ein paar Benchmarks auf einem P233 mit 32 MByte RAM und 2 GIG Platte (uralt): root_(at)_www:/home2/little-idiot/dokumente > time ./ghreindex This is glimpseindex version 4.1, 1997. Indexing "/home2/little-idiot/dokumente" ... Size of files being indexed = 31098146 B, Total #of files = 5811 Glimpse-files created here: -rw-r-xr-x 1 little-idiot users 141 Jun 27 2000 .glimpse_exclude -rw-r-xr-x 1 root root 137 Jun 27 2000 .glimpse_exclude~ -rw-r-xr-x 1 little-idiot users 353667 Apr 17 00:01 .glimpse_filenames -rw-r-xr-x 1 little-idiot users 23244 Apr 17 00:01 .glimpse_filenames_index -rw-r--r-- 1 root root 24576 Apr 17 00:01 .glimpse_filetimes -rw-r-xr-x 1 little-idiot users 6780 Apr 16 23:56 .glimpse_filetimes.index -rw------- 1 root root 1789206 Apr 17 00:01 .glimpse_index -rw-r-xr-x 1 little-idiot users 1235 Apr 17 00:01 .glimpse_messages -rw------- 1 root root 2606236 Apr 17 00:01 .glimpse_partitions -rw-r--r-- 1 root root 1344047 Dez 22 1999 .glimpse_split.22470 -rw-r--r-- 1 root root 1316275 Dez 19 1999 .glimpse_split.22836 -rw-r--r-- 1 root root 1316268 Dez 17 1999 .glimpse_split.3195 -rw-r--r-- 1 root root 1446478 Mai 19 2000 .glimpse_split.3404 -rw-r--r-- 1 root root 1112901 Mär 16 2000 .glimpse_split.4599 -rw-r-xr-x 1 little-idiot users 706136 Apr 17 00:01 .glimpse_statistics -rw-r-xr-x 1 little-idiot users 262144 Apr 17 00:01 .glimpse_turbo In den ".-Dateien" kann man Verzeichnisse z.B. ausblenden, die nicht indiziert werden sollen. Hier ein Beispiel für einen Suchlauf: root_(at)_www:/home2/little-idiot/dokumente > time glimpse -H -j -y SYN-ACK using working-directory '/home2/little-idiot/dokumente' to locate index /home2/little-idiot/dokumente/firewall/zusammen-130.html: halboffenen Verbindungen (Siehe SYN-ACK Mechanismus bei der SINUS Firewall) /home2/little-idiot/dokumente/firewall/zusammen-80.html: lassen (timeout refresh) und ein SYN-ACK sowohl an die echten, als auch die /home2/little-idiot/dokumente/firewall/zusammen-80.html: SYN-ACK quittiert wurden und kann so den SYN-RCVD Buffer leeren. Es /home2/little-idiot/dokumente/firewall/zusammen-80.html: Host, der die gespoofte IP - Nummer besitzt, eine Flut von SYN-ACK Paketen /home2/little-idiot/dokumente/firewall/zusammen-80.html: gespooften) IP - Nummer das Aussenden des SYN-ACK stoppt. /home2/little-idiot/dokumente/firewall/zusammen-80.html: SYN-ACK Pakete verteidigt, denen kein SYN vorangegangen ist. Allerdings /home2/little-idiot/dokumente/firewall/zusammen-72.html: <LI>SYN-ACK "sequence number" Überprüfung </LI> real 0m0.472s user 0m0.350s sys 0m0.100s root_(at)_www:/home2/little-idiot/dokumente > Glimpse durchsucht also ca. 32 MByte Dateien (HTML, ASCII, PDF, WORD...) in ca. 1/2 Sekunde und gibt diese dann auch aus. Webglimpse ist nur ein PERL Skript, welches diese Ausgabe dann in HTML formatiert - kann man recht einfach auch in PHP machen - ist albern. Interessant ist jedoch, daß GLIMPSE auf einem schnellen ALDI - Rechner ca. >10 mal so schnell ist, wie meine Kiste hier ...,also 1 GByte Daten in ca. 1 Sekunde durchsuchen kann, und zwar Volltext mit allen Schikanen. Eine AND Verknüpfung z.B. halbiert die Geschwindigkeit. Entscheidend ist jedoch ,daß nach beliebigen Suchstrings gesucht werden kann, und daß, im Falle dessen, daß kein Eintrag vorhanden ist, die Suche ratzfatz zuende ist. Andere Datenbanken suchen sich in diesem Falle tot: root_(at)_www:/home2/little-idiot/dokumente > time glimpse -H -j -y 23343 using working-directory '/home2/little-idiot/dokumente' to locate index glimpse: pattern '23343' has no characters that were indexed: glimpse cannot search for it (to search for numbers, make the index using 'glimpseindex -n ...') real 0m0.077s user 0m0.050s sys 0m0.030s root_(at)_www:/home2/little-idiot/dokumente > D.h. Glimpse arbeitet wahnsinnig schnell bei Suchanfragen, die kein Ergebnis haben. Dieses Verhalten zeigen z.B. auch Yahoo, Google u.s.w. .. Oracle o. MySQL sind hier wirklich fehl am Platze .... > Diese sollen im Internet über einen FULLTEXT KEY indiziert und > recherchierbar sein. Fulltext Keys gibt es hier nicht, auch keine Indizes - das ist nicht mit SQL zu vergleichen. SQL ist von Vorgestern. Ich kenne Glimpse nun schon seit vielen Jahren - etwas besseres für Telefonbücher, Volltextsuche, Zettelkasten, Daten aller Art gibt es nicht. Man benötigt keine Tabellen, keine Vergabe von Spaltennamen, Spaltengrößen, Typen, Indizes o.ä. Quatsch. Daten einfach irgendwo in ein Verzeichnis reinschmeißen, Indexer drüberlaufen lassen - fertig. Der Indexer läuft allerdings einige Zeit, so ca. 30 Sekunden für 32 MByte ....also ca. 20 Minuten/ Gigabyte ....auf einem P233 mit 32 Mbyte RAM. /usr/bin/glimpseindex -H /home2/little-idiot/dokumente -o -t /home2/little-idiot/dokumente GLIMPSE selber ist mit GPL Copyright, nur webglimpse ist mit besonderem Copyright ....also weg damit ....selber schreiben .... Ich habe hier mitunter ca. 20-50 simultane Anfragen/Sekunde mit PERL CGI-BIN's kann mein Server das verkraften. Mit MOD_PHP im Apache sicher viel weniger, nur ca. 2-5 Anfragen..... Gru/3, Guido Stepken > (Volltextsuche). Die Erfassung und Korrektur dieser Texte ist einmalig. -- Linux is like a wigwam - No GATES, no WINDOWS and there is a APACHE inside .. Have fun ! Greetings to all MCSE's (Microsoft Certified System Entertainer) --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive