TurboPL Referenz

ScanRecs Prozedur

Top  Previous  Next

Syntax

ScanRecs(MainTable, IndexTable, RelTable: Integer; Fields(Column1 [, Column2, ..ColumnN]); ExtABC: String; MaxFrequency: Integer; ContraIndex: String; Mode: Integer): Integer

Kategorie

Datenbank-Befehl

Erklärung

ScanRecs erzeugt einen Volltextindex für eine Tabelle. Im Normalfall wird man den Index mit Hilfe des in die Oberfläche integrierten Assistenten erstellen (Tabelle/Volltextindex im Menü des Datenmodells). Für spezielle Fälle kann auf die Funktion ScanRecs zurückgegriffen werden.

Die Parameter haben die folgende Bedeutung:

MainTable

Ist die Tabelle, für die der Volltextindex erstellt werden soll.

IndexTable

Ist die Tabelle, in der die Stichwörter abgelegt werden.

RelTable

Ist die Relationstabelle, die die Verknüpfungsinformation von MainTable und IndexTable enthält. Der Name der Tabelle setzt sich aus dem Namens des Relations-Feldes der Tabelle MainTable und der Kennung REL zusammen.

Fields

Als vierter Parameter muss die Funktion Fields übergeben werden. Dieser spezielle Funktion sind als Parameter die Spalten zu übergeben, deren Inhalt bei der Bildung des Volltextindex zu berücksichtigen ist. Über Koppelfeld-Notation können auch Spalten verknüpfter Tabellen einbezogen werden.

ExtABC

Soll das normale Alphabet erweitert werden, kann hier eine Zeichenkette mit zusätzlichen Zeichen übergeben werden. Wird ein Leerstring ('') übergeben kommt das herkömmliche Alphabet zum Einsatz.

MaxFrequency

Hier kann eine Obergrenze für die Häufigkeit des Auftretens eines Begriffes angegeben werden. Wird ein Stichwort öfter gefunden, wird es nicht in den Index aufgenommen. Da es meistens wenig hilfreich ist zu wissen, dass ein bestimmtes Wort in beinahe jedem Datensatz zu finden ist, sollte hier in bezug auf die Dateigröße eine sinnvolle Grenze angegeben werden. Dies führt nicht zuletzt bei einer Suche zu einer Steigerung der Performance.

ContraIndex

Hier kann der Name einer Textdatei angegeben werden, die einen Kontraindex enthält. Wörter die im Kontraindex enthalten sind werden nicht in den Volltextindex aufgenommen, was wiederum der Performance zugute kommt. Klassische Wörter für einen Kontraindex sind "der", "die", "das", "ein", "und" u.s.w. Die Textdatei muss die auszuschließenden Begriffe zeilenweise enthalten, pro Zeile ein Begriff. Wird ein Leerstring "" angegeben werden alle Wörter in den Volltextindex aufgenommen.

Mode

Über diesen Parameter kann die Arbeitsweise von ScanRecs eingestellt werden. Übergeben werden Zahlen die jeweils für eine bestimmte Arbeitsweise stehen. Eine Kombination kann durch Addition der Werte erfolgen. 0 dürfte für die meisten Anwendungen empfehlenswert sein.

0: Aufbau einer neuen Stichworttabelle. Erstellen aller benötigten Indexe (ID, INR)
1: Verwenden einer bereits bestehenden Stichworttabelle. Mehrere Tabellen können sich durchaus eine Stichworttabelle teilen. Ein Neuaufbau des Index wäre in diesem Fall fatal.
2: Neue Wörter werden nicht aufgenommen. Es werden nur Verknüpfungen zu bereits in der Stichworttabelle enthaltenen Begriffen erstellt.
4: Ist reserviert
8: Ist reserviert

Der Rückgabewert ist die Anzahl der indizierten Stichwörter.

Um einen neuen Volltextindex zu erstellen sind folgende Schritte nötig:

1.Erzeugen Sie eine neue Tabelle. Die erste Spalte der Tabelle muss eine alphanummerische Spalte zur Aufnahme der Stichwörter sein. Die zweite Spalte muss vom Typ Auto-Nummer sein.
2.Öffnen Sie den Designer für die Tabelle, für die der Index erzeugt werden soll. Fügen Sie eine neue Spalte vom Typ Relation in die Tabelle ein und geben Sie als angekoppelte Tabelle die in Schritt 2 neu erzeugte Stichworttabelle an. Beim Restrukturieren der Tabelle wird automatisch die Relationstabelle angelegt.
3.Aufruf von ScanRecs.

Um einen bereits bestehenden Volltextindex aufzufrischen, genügt ein erneuter Aufruf von ScanRecs, oder falls nur mit dem aktuellen Datensatz aufgefrischt werden soll ScanRec

Beispiele

Der folgende Aufruf von ScanRecs erzeugt einen Volltextindex für die Tabelle LITERATUR. Die Tabelle verfügt über ein Relations-Feld Stichwort, über das die Verknüpfung mit der Tabelle INDEX hergestellt wird. Es werden die Spalten Kurzbeschreibung und Inhalt zur Bildung des Volltextindex herangezogen:

ScanRecs(LITERATUR, INDEX, STICHWORT, Fields(Kurzbeschreibung, Inhalt), "", 1000, "", 0)

Jetzt soll noch der Name des Autors berücksichtigt werden, der sich in einer über das Koppelfeld Autor angekoppelten Tabelle befindet. Zusätzlich wird die maximale Häufigkeit für das Auftreten eines Begriffes auf 200 gesetzt und die Verwendung des Kontraindex festgelegt, der in der Datei Kontra.txt abgelegt ist.

ScanRecs(LITERATUR, INDEX, STICHWORT, Fields(Kurzbeschreibung, Inhalt, Autor.Name), "", 200, "Kontra.txt", 0)

Siehe auch

Volltextindex, MarkTable ScanRec