[Allegro] Trick 33: Volltextsuche in eigenem FLEX
Bernhard Eversberg
ev at biblio.tu-bs.de
Do Jan 11 07:58:19 CET 2007
Trick 33: Volltextsuche in eigenen FLEX einbauen
Warum? FLEX ersetzt zunehmend die alten Batchdateien! Und eine der
wichtigsten Komponenten in der allegro-Umgebung ist das Volltext-
Suchprogramm SRCH. Mit einem ganz einfachen Aufruf:
srch -f4 -s<suchbegriff> -e<expar>/<outfile> ...
konnte und kann man eine Datenbank volltextdurchsuchen und zugleich
die Treffer in jedem gewünschten Format exportieren lassen.
Diese hochwirksame Methodik wird auch in FLEX gebraucht! Und es gibt
sie jetzt:
Lösung: Man baut diese Zeilen ein:
#u!!<suchbegriff>
perf ftr
sho list
...
end
include ftr.inc
Die neue Datei "ftr.inc" enthält die komplette Prozedur für die
Volltextsuche in der gesamten Datenbank. Bei Rückkehr stehen die
Ergebnisse in der aktuellen Ergebnismenge, die man sofort anzeigen
lassen kann (show list) oder sonstwie verarbeiten, vor allem
natürlich exportieren (dow set).
Bei Mißerfolg wirft ftr.inc die Meldung "nichts gefunden" aus.
Wer will, kann sie herausnehmen.
Selber testen kann man den Mißerfolg so
var Z
if Z<1 jump misserfolg
...
denn Z ist der Trefferzähler.
Und wie steht's mit der Geschwindigkeit? Auf Systemen mit schnellen
Platten ist ftr deutlich schneller als SRCH, generell aber nicht
langsamer.
In ftr.inc findet man die nötigen Kommentare. Die darin
verwendeten Sprungmarken beginnen alle mit :ftr: und sind deshalb
nicht in Gefahr, mit anderen im eigenen FLEX zu kollidieren!
Aber was bedeutet "ftr"? Es kommt von Full Text RegEx.
Mehr Informationen über die Mailingliste Allegro