FATS - Fast Access Tree System
Inhaltsverzeichnis
Befehlsübersicht
"MS" Search in Matchcode

"MS" Search in Matchcode


Syntax des Kommandostrings:

CMND$ = "MS\{FileNo}\{Flags}\{Total}\{SearchGrp1}[\{SearchGrp2}...]"

FileNoNummer der Indexdatei
FlagsFolgende Flags werden momentan angeboten:
S#Die Ergebnistabelle wird anhand des Sortierschlüssels # (1-4) alphanumerisch sortiert. Die Sortierung findet innerhalb der von FATS zur qualitativen Gewichtung d. Treffer erstellten Sortiergruppen statt. Eine weitergehende Erläuterung der Sortierschlüssel entnehmen Sie bitte der Beschreibung des Befehls  "MC".
GF#Dieses Flag veranlaßt FATS, die Treffer der Sortiergruppen < # zu ignorieren, d.h. nur die Treffer in der Ergebnistabelle aufzunehmen, welche nicht in eine der Sortiergruppen kleiner der angegebenen fallen.
TotalMaximale Anzahl Treffer in der Ergebnistabelle:
0Es werden alle Treffer in die Ergebnistabelle gestellt. Diese Einstellung arbeitet sehr schnell, es findet aber auch keine Sortierung anhand der Trefferqualität statt.
> 0Es wird versucht, die angegebene Anzahl Treffer in die Ergebnistabelle zu stellen. Diese Treffer werden einer Sortierung bezüglich ihrer Qualität unterzogen und dann in eine von 7 Sortiergruppen eingeordnet. Bei zusätzlicher Anwendung eines Sortierschlüssels ("#S") sind nur maximal 500 Treffer möglich.
SearchGrp#Hier werden die in der Suchgruppe # gesuchten Begriffe angegeben.

Zusammenfassung:

Matchcode-Suchabfrage durchführen.

Beschreibung:

Dieser Befehl führt eine Matchcode-Abfrage aus und füllt die Ergebnistabelle mit den Datensatz- bzw. ID-Nummern der Datensätze, welche die gesuchten Begriffe beinhalten. Bei erfolgreicher Verarbeitung (ERRORCODE == 0) wird der Applikation die Datensatz- bzw. ID-Nummer des ersten Treffers über die Variable "RECNO" zur weiteren Verarbeitung zur Verfügung gestellt. Die Ergebnistabelle kann anschließend mit den Browserbefehlen ("MA", "ME", "MN", "MP" etc.) ausgelesen werden. Konnten keine Treffer ermittelt werden, dann hat die Fehlercode-Variable den Wert #16.

Wenn sich die Abfrage über mehrere Suchgruppen erstreckt, dann werden die Ergebnisse der Suchgruppen mit einer UND-Bedingung verknüpft, d.h. ein Datensatz wird nur dann selektiert, wenn er alle abgefragten Begriffe innerhalb der jeweiligen Suchgruppen aufweist. Die Suchbegriffe werden durch Leerzeichen und die Suchgruppen (SearchGrp#) durch das FATS-Trennzeichen (normalerweise ein Backslash) voneinander getrennt.

Die Angabe einer maximalen Trefferanzahl (Flag "Total") ermöglicht die Sortierung der Ergebnistabelle anhand der Trefferqualität. FATS ordnet die gefundenen Datensätze dabei einer von maximal 7 Sortiergruppen zu, wobei Treffer innerhalb der ersten Sortiergruppe an den Anfang der Ergebnistabelle gestellt werden. Die ersten drei Sortiergruppen sind nur dann aktiviert, wenn beim  Create Matchcode File (MC) - Befehl das Flag "L" benutzt wurde.
Die folgende Reihenfolge innerhalb der Ergebnistabelle ergibt sich bei der Verwendung der Sortiergruppen:

Gruppe 1:Der gesuchte Begriff steht als ganzes Wort am Beginn einer Datenspalte. (z.B. "Beton für den Heimwerker")
Gruppe 2:Wie Gruppe 1, der Begriff ist aber durch eines oder mehrere Leer- oder Trennzeichen unterbrochen (z.B. "B e t o n")
Gruppe 3:Wie Gruppe 2, der gesuchte Begriff kommt jedoch nur am Anfang eines Wortes vor (z.B. "Betonerzeugnisse").
Gruppe 4:Wie Gruppe 1, der Begriff steht jedoch nicht am Beginn der Datenspalte (z.B. "Frischer Beton vom Fachbetrieb").
Gruppe 5:Wie Gruppe 2, jedoch nicht am Spaltenanfang.
Gruppe 6:Wie Gruppe 3, der Begriff steht jedoch nicht am Beginn der Datenspalte (z.B. "Neue Betonmischer abzugeben").
Gruppe 7:Alle übrigen Treffer (z.B. "Spannbeton", "Spannbetonwerk" oder auch "do not bet on me").

Rückgabe:

ERRORCODE:Fehlercode oder 0 (kein Fehler)
RECNO:Datensatznummer
FATSKEY:Wenn bei der Erstellung der Matchcode-Indexdatei mit dem "K#:#"-Flag ein Primärschlüssel generiert wurde, dann wird er dem Programm über diese Variable zur Verfügung gestellt.

Beispiel:

CMND$ = "MS\1\\0\"+SEARCHGRP1$+"\"+SEARCHGRP2

oder nur die erste Suchgruppe berücksichtigen, keine Trefferbegrenzung:

CMND$ = "MS\1\\0\"+SEARCHGRP1$

oder nur in der zweiten Suchgruppe suchen (max. 150 Treffer):

CMND$ = "MS\1\\150\"+"\"+SEARCHGRP2$

 BASIC Beispiel
 Pascal Beispiel
 C Beispiel

Siehe auch:

 "MA" Get Next Result After; Seite 4-51
 "ME" Get Previous Result Before; Seite 4-64
 "MF" Get First Result; Seite 4-66
 "ML" Get Last Result; Seite 4-71


 

© 2008  GCS Software, Udo Gertz