TurboSQL Guide Volltext Suche |
Top Previous Next |
Volltextsuche ist die Suche nach einem beliebigen Wort in einem Datensatz. Diese Art der Suche ist für Memo- und WideMemo-Felder besonders nützlich, in denen das Suchen mit herkömmlichen Operatoren und Funktionen nicht das erwartete Resultat liefert oder zu lange dauert. Die Volltextsuche unterliegt zwei Einschränkungen:
Die Basis eines Volltext-Index ist das Wörterbuch, das eine normale Datenbank-Tabelle mit einem bestimmten Schema ist. Es enthält die Informationen über indizierte Wörter, ausgeschlossene Wörter, Wort-Relevanz, u.s.w. Sobald das Wörterbuch besteht, kann es für eine beliebige Zahl von Volltext-Indexen auf einer oder auf mehreren Tabellen benutzt werden. Ab TurboDB 5, werden Volltext-Suchbedingungen in die WHERE Klausel der Abfrage eingebettet: select * from SOFTWARE join VENDOR on SOFTWARE.VendorId = VENDOR.Id Eine einfache Volltext-Suchbedingung sieht so aus: contains('office -microsoft' in SOFTWARE.*) die zutreffend ist, wenn irgendein Feld des Standard-Volltext-Index der Tabelle SOFTWARE das Wort office aber nicht das Wort microsoft enthält. Wenn sich die Abfrage auf nur eine Tabelle bezieht, kann dieses auch so geschrieben werden: contains('office -microsoft' in *) Wenn der Volltext-Suchausdruck mehr als ein Wort ohne den Bindestrich enthält, sucht TurboDB nach Datensätzen, die alle gegebenen Wörter enthalten. contains('office microsoft' in SOFTWARE.*) wird daher Datensätze finden, die beide Wörter, office und microsoft, in einem Feld des Standard-Volltext-Index der Tabelle enthalten. Nach Wörter, die durch ein Pluszeichen getrennt sind, wird alternativ gesucht. Das Prädikat contains('office star + open' in SOFTWARE.*) findet Datensätze, die das Wort office und entweder star oder open beinhalten (oder beide). Hinweise Volltext-Indexe können mit der TurboSQL Anweisung CREATE FULLTEXTINDEX , mit einem der Datenbank-Management Werkzeuge (wie TurboDB5Viewer) oder mit den entsprechenden Methoden der jeweiligen TurboDB Komponenten erstellt werden. Von TurboDB Tabellen-Level 3 auf Level 4 hat sich die Technologie der Volltext-Indizierung geändert. Die neue Implementierung ist sehr viel schneller und erlaubt sowohl gewartete Indexe als auch Relevanzen. Es wird dringend empfohlen Tabellen-Level 4 zu verwenden, wenn mit Volltext-Indexen gearbeitet werden soll. Die alte Volltextsuche wird eventuell entfernt. |