Dse Anregungen / Schnellere Volltextsuche
StartSeite | DseAnregungen/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Es wäre schön, wenn die Volltextsuche zügiger abliefe.
Man hat den Eindruck, dass die Volltextsuche "intern tatsächlich sucht", statt sich eines Indexes zu bedienen, der bei Seitenänderungen zu aktualisieren wäre.
- Der Eindruck ist auch richtig. Eine echte Volltextsuche mag archaisch scheinen, hat aber logische Vorteile gegenüber einem Index. Leider jedoch den Geschwindigkeitsnachteil. Ich muss das alles nochmal überdenken... -- HelmutLeitner
- Eigentlich muss ich sagen, dass mir die Suche nicht zu langsam ist. Ich benötige sie nicht sehr oft. Wenn ich sie benutze, hat mich die Suchzeit meist nicht gestört. -- VolkerGlave
Ich hab ein schnelles Programm, sehr ähnlich zu fgrep, etwa 2.5-fach schneller als fgrep.
Ohne -g bricht es nach dem ersten Fund ab. Mit -q gibt es nur den Exit-Code.
Im übrigen kennt es die gängigen grep-Optionen.
Wenn das Wiki auf Linux oder FBSD läuft, kann ich das Programm beisteuern.
-rwxr-xr-x 1 root wheel 25692 Feb 12 04:41 /u/bin/bgrep
181] /usr/bin/time bgrep -g iso /usr/z.iso ; echo $status
38943
38986
34750774
42695647
48611650
58583045
61011089
67038079
88019770
93392545
102015715
102858109
105300951
106031409
120356014
122784107
128811266
1.09 real 0.47 user 0.34 sys
0
Wie zu sehen ist: ~1s für 120 MB; PIII/700. Das ist irre schnell.
--hs
Helmut, zunächst einmal vielen Dank für dein Angebot. Derzeit läuft die Suche nicht über grep (und nicht über Files), sondern intern in Perl (und über Bereiche innerhalb von Files). Ich kann also nicht 1:1 tauschen und vergleichen. Dazu wäre ein Umbau notwendig, den ich aber erst mache, wenn sich echte Performanceprobleme abzuzeichnen beginnen. Es würde auch zeigen, wie gut die Perl-Regex im Vergleich sind. Sehr spannend. Ich werde also gerne darauf zurück kommen (im Einsatz ist FreeBSD und Linux). Danke. -- HelmutLeitner
Zusatzinfo:
bgrep [-gclvhsq1M] [-on|-On] [-nn] {{-f|-F}datei|[-e]folge} datei ...
n: #[{b|k|w|l}][{x|+}#[{b|k|w|l}]]...[{x|+|-}#[{b|k|w|l}]]
#: [0]...{1-9}...[0-9]...
Man kann auch Offset + Anzahl n angeben.
Ich machte diesen Vorschlag, weil man zwischen raw und regexp umschalten kann.
Ich dachte, bei raw wird auf andere Weise gesucht. Desweiteren bringt es sehr viel, wenn nach erstem Fund (s.o.: 38943) abgebrochen wird.
Übrigens, es wäre irresaugut, wenn es ein Highlighting (per Checkbox) gäbe, wie bei google:aus dem Cache. Das ließe sich auch mit bgrep machen (s.o.). --hs
- Ja, das Highlighting wär super. Ich sehe nur im Moment noch Probleme, weil die Fundstellen unter Umständen mit Befehlen verzahnen können. Wenn dann ein HTML-Tag einfach darübergestülpt wird, kann das einiges durcheinanderbringen.
- Was das Abbrechen betrifft, diese Optimierung macht Perl sicher, da es dafür eine eigene Unterscheidung m/.../ bzw m/.../g gibt. -- HelmutLeitner
Meines Wissens nach ist / bzw. /g zeilenorientiert! --hs
StartSeite | DseAnregungen/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 14. September 2003 17:53 (diff))