[Allegro] Spezielle Fragen der Volltextsuche
Bernhard Eversberg
b-eversberg at gmx.de
Fr Mär 16 11:15:32 CET 2018
Es gab gelegentlich schon Sonderfälle der Volltextsuche zu lösen. Besonders
der inzwischen emeritierte Kollege Fischer (Göttingen) hat zu einigen Klärungen
beigetragen.
Weil gerade bei einem anderen Anwender solche Fragen auftraten, hier nochmals
ein paar Hinweise für alle, die sich dem Thema noch nicht genähert haben:
Die Volltextsuche wird ausgeführt von einem FLEX namens ftr.flx, ist also
keine fest in a99 eingebaute Funktion. Der FLEX beginnt mit diesen Hinweisen:
FTR.FLX : Full Text search with Regular expressions
20061218/20101221
Der regulaere Ausdruck (=Suchbegriff) muss in #u!! stehen
der zu durchsuchende Text in der iV
Achtung: V14-Nummern werden expandiert! Wenn das nicht
gewuenscht ist, muss eine Zeile deaktiviert werden, siehe
Kommentar "V14"
Hieraus abgeleitet, aber unabhaengig:
ftr.inc UP zur Einbindung in eigene FLEXe, die einen FTS machen sollen
Ausführlichee Hilfe zum Thema : h ftr eingeben. In diesem Hilfetext werden
alle Spezialfälle erklärt, die vorkommen können.
Sehr wichtig zu wissen: Der eingegebene Suchbegriff und auch der eingelesene
Datensatz werden umcodiert, bevor gesucht wird: aus ä und Ä wird ae, aus é und É wird e
usw., und Satz- Sonderzeichen verschwinden völlig, können also normalerweise nicht gesucht
werden. Ausnahme: der Bindestrich.
Was aber, wenn man gezielt nach Zeichenfolgen suchen will, die ein oder mehrere
Sonderzeichen enthalten? Dann setzt man vor den gesamten Suchbegriff einen Unterstrich.
Solche Fragen und andere mehr behandelt der Text und gibt jeweils dazu Beispiele.
Eine Sonderrolle spielen die Zeichen + - /
sie stehen für die logischen Kombinationen UND NICHT ODER
Will man sie als solche suchen, was dann? Dann setzt man einen \ davor, dieser hebt
die Sonderrolle des Zeichens auf und bewirkt, daß es als solches gesucht wird.
Und wenn man das Zeichen \ als solches suchen will: Dann verdoppeln: \\ schreiben.
Auch für die Suche nach dem Punkt gibt es einen Trick: \. eingeben.
Was auch oft vorkommt: Steht irgendwo die Zeichenfolge xyz in einer Kategorie der
Gruppe #3 (also #30, #31 usw.)
Dann eingeben: _#3.*xyz
Wenn xyz keine Sonderzeichen enthält, wird _ nicht gebraucht. Die Kombination .*
gesagt nämlich: schaue nach, ob #3 auftritt, und dann prüfe, ob in dem betr. Feld
die Zeichenfolge xyz steht.
Alle anderen Sonderfälle sind ausreichend klar beschrieben. Am besten alles ausprobieren,
wenn man Power-Searcher werden will. Es macht Spaß und ist vollkommen ungefährlich.
Es handelt sich bei der kryptisch anmutenden Syntax nicht um eine spezielle allegro-
Erfindung, sondern um die jedem UNIX- und Perl-Kenner altbekannte Methode der
"regulären Ausdrücke" (regular expressions).
Und wer FLEX kann, findet im ft.flx auch noch Hinweise für denkbare Veränderungen, die
nützlich sein könnten.
Lucky searching!
B.E.
Mehr Informationen über die Mailingliste Allegro