Im Rahmen dieses Artikels sollen Verwendungszwecke und Einsatzmöglichkeiten der Volltextsuche mit Hilfe des Microsoft SQL-Servers anhand von Beispielen aus der Linguistik aufgezeigt und näher betrachtet werden.
Motivation: Textverarbeitung
Es gibt viele Szenarien bei denen Volltextsuchen innerhalb von IT-Anwendungen verwendet werden, auch wenn dies dem Benutzer oft nicht direkt ersichtlich ist. So kommt beispielsweise in der heutigen Zeit keine moderne Textverarbeitung-Software mehr ohne Rechtschreib-und Grammatikkorrekturen aus.
Die richtige Schreibweise der einzelnen Worte, die so genannte Wortbeugung bzw. Flexion, ist dabei innerhalb des Programms (z.B. in Microsoft Word) unter Beachtung des grammatikalischen Zusammenhangs in einem Wörterbuch hinterlegt. Diese Lexika (engl.: Thesauri) sind je nach Anwendung bei der Verwendung entweder bereits in der eingesetzten Applikation integriert oder können bei Bedarf als Zusatzmodule nachinstalliert werden.
FTS-Verwaltungssichten und -Funktionen im SQL-Server
Seit SQL-Server-Version 2008 ist die Volltextsuche nicht mehr ein autonom implementierter Dienst sondern eine in den SQL-Server-Prozess integrierte Komponente. Durch diese Umsetzung ergeben sich viele Vorteile wie Performance-Gewinn, Abfrage-Optimierungen durch Volltext-Indizes und effizientere Ressourcenverwaltungen (vgl. [5], Seite 92/93). Des Weiteren bietet der SQL-Server nun eine Liste mit diversen Datenbank-Objekten an, die in Verbindung mit der Volltextsuche stehen:
Diese Datenbank-Objekte sind eine Reihe von dynamischen Managementfunktionen und -sichten (deshalb auch das dm-Präfix im Namen), welche dem sys-Schema angehören [2]. Bezüglich der Namenskonventionen für die einzelnen Views oder Funktionen orientieren sich diese Verwaltungsfunktionen am Schema "sys.dm_fts_[xyz]", wobei "[xyz]" die genauere Funktionalität beschreibt. Des Weiteren werden für diese Objekte VIEW SERVER STATE-oder VIEW DATABASE STATE-Berechtigung benötigt, um Lesebefehle mittels der SELECT-Anweisung ausführen zu können [2],[3] .
Flexionsformen mit sys.dm_fts_parser-Funktion abfragen
Sicherlich wäre es zu umfangreich nun alle Views und Funktionen, die in der MSDN aufgeführt sind, bis in das kleinste Detail zu beleuchten. Dennoch sollte man sich bereits an dieser Stelle bewusst sein, welch breites Funktionsspektrum der FTS-Dienst im MS SQL-Server bietet.
Im Folgenden werden ein paar einfache SQL-Statements gezeigt, welche mit Hilfe der sys.dm_fts_parser-Funktion Flexionen abfragen. Die allgemeine Abfrage-Form für sämtliche folgende SQL-Anweisungen orientieren sich ausschließlich am folgenden Muster:
1: SELECT * FROM sys.dm_fts_parser
2: (
3: N'FORMSOF(FREETEXT, ' + @SearchTerm + ')', -- @SearchTerm: Zeichenkette für Suchbegriff
4: lcid, -- Datentyp int, Gebietsbezeichner für Länder- und Spracheinstellungen (z.B. 1031 für Deutsch)
5: stoplist_id, -- Datentyp int, für evtl. vorhandene Stoplisten (Default: NULL)
6: accent_sensitivity -- Datentype bit, Unterscheidung von diakritische Zeichen
7: )
Bei dieser Form der Abfrage gilt es vor allem den Gebietskontext in Form des LCID (=Language Code Identifier) zu berücksichtigen, welcher für die Länder- und Spracheinstellungen benötigt wird. So muss beispielsweise für die deutsche Sprache der Ländercode 1031 angegeben werden, während für englisch-amerikanische Vokabulare der Code 1033 festgelegt ist. Die Ländercodes für andere Sprachgebiete und Nationen können im Internet beispielsweise hier recherchiert werden.
Sämtliche Konjugationsformen des englischen Verbs „go“ können zum Beispiel wie folgt abgefragt werden:
1: SELECT * FROM sys.dm_fts_parser
2: (N'FORMSOF(FREETEXT, ' + 'go' + ')',
3: 1033,
4: NULL,
5: 0);
Das Ergebnis sieht dann wie folgt aus:
In der Spalte "display_term" stehen die unterschiedlichen Formen, die das Verb in der englischen Sprache annehmen kann, während die Spalte "source_term" das Ausgangswort der Suchabfrage enthält.
Ähnlich verhält es sich im folgenden Beispiel mit deutschen Nomen:
1: SELECT * FROM sys.dm_fts_parser
2: (N'FORMSOF(FREETEXT, ' + 'Lexikon' + ')',
3: 1031,
4: NULL,
5: 0);
So lautet in der deutschen Sprache der Plural von "Lexikon" auf keinen Fall "Lexikas" sondern "Lexika" oder alternativ “Lexiken”:
Umfangreichere Ergebnislisten für Konjugationsformen werden insbesondere durch Abfragen der vielen unregelmäßigen deutschen Verben (z.B. “riechen”) erzielt:
1: SELECT * FROM sys.dm_fts_parser
2: (N'FORMSOF(FREETEXT, ' + 'rieche' + ')',
3: 1031,
4: NULL,
5: 0);
Und bitte mal ganz ehrlich, wer hätte aus dem Stegreif gewusst, dass der Konjunktiv von "ich rieche" "ich röche" lautet ?
Zusammenfassung und Ausblick
In diesem Artikel wurde dargelegt, wie mit Hilfe der Volltextsuche innerhalb des Microsoft SQL-Server Konjugationen von Verben und Deklinationen von Nomen abgefragt werden können. Somit könnte die Volltextsuche also durchaus im Rahmen der sprachwissenschaftlichen Forschung Verwendung finden. Des Weiteren bietet die FTS aber noch viele weitere Funktionalitäten und Modifikationen, welche in weiteren Artikel gezeigt werden sollen.
Quellen
- Wikipedia: Flexion (letzter Zugriff: 25.06.2013)
-
Dynamische Verwaltungssichten und Funktionen (Transact-SQL) (letzter Zugriff: 25.06.2013)
-
Dynamische Verwaltungssichten und -funktionen für die Volltextsuche (Transact-SQL) (letzter Zugriff: 25.06.2013)
-
Verwaltungsfunktion: sys.dm_fts_parser (Transact-SQL) (letzter Zugriff: 25.06.2013)
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen