[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