Kategorie auswählen
Übersicht Hilfe Kontakt
print article

Volltextsuche in MSSQL-Datenbanken

In diesem Artikel zeigen wir Ihnen, wie Sie eine Volltextsuche an Hand von Volltext-Indizes durchführen.

Volltext-Indizes erlauben es Ihnen, auf einfache und vor allen Dingen schnelle Art Tabellen nach Wörten bzw. Textfragmenten zu durchsuchen. So können Sie komplette Tabellen felderübergreifend ähnlich komfortabel durchsuchen, wie Sie das bspw. von Suchmaschinen her kennen.

Volltext-Indizes und Katalog anlegen/aktivieren

Damit Sie die Volltextsuche nutzen können, muss die Datenbank vorbereitet und ein Volltext-Index erstellt werden.

In der folgenden Anleitung steht 'Ihre_Tabelle' für den Namen der Tabelle, die den Index erhalten soll.

Schritt 1
So aktivieren Sie die Datenbank für die Volltextsuche:
Bitte beachten Sie:
Diese Aktion überschreibt einen bereits vorhandenen Index.
sp_fulltext_database 'enable'
Schritt 2
Erstellen Sie nun den Volltext-Index. Dazu muss zunächst ein sogenannter Katalog erstellt werden ('VolltextKatalog1' ist hier der Name des Katalogs):
sp_fulltext_catalog 'VolltextKatalog1','create'
Jetzt können Sie den eigentlichen Index erstellen:
sp_fulltext_table 'Ihre_Tabelle','create','VolltextKatalog1','pkID_Feld'

Fügen Sie nun die Felder hinzu, die indiziert werden sollen. Diese müssen entweder vom Typ char, varchar, nchar, nvarchar oder text sein:
sp_fulltext_column 'Ihre_Tabelle','Name','add' sp_fulltext_column 'Ihre_Tabelle','Vorname','add'
'Name' und 'Vorname' sind hierbei die Feldnamen.
Schritt 3
Aktivieren Sie nun den Index:
sp_fulltext_table 'Ihre_Tabelle','activate'

Generieren Sie den Index danach mit dem folgenden Befehl:
sp_fulltext_table 'Ihre_Tabelle','start_full'
Schritt 4
Aktivieren Sie nun abschließend das Change-Tracking. Voraussetzung hierfür ist ein Feld mit dem Datentyp timestamp. Dadurch wird der soeben erstellte Index automatisch aktualisiert, sobald sich Daten in den oben hinzugefügten Spalten ändern:
sp_fulltext_table Ihre_Tabelle, 'Start_change_tracking' sp_fulltext_table Ihre_Tabelle, 'Start_background_updateindex'
Anwendungsbeispiele

Im Folgenden zeigen wir Ihnen einige Beispiele dafür, wie Sie die Volltextsuche nach bestimmten Kriterien anwenden.

Beispiel 1a:
Alle Datensätze der Tabelle 'Beispieltabelle' zurückgeben, bei der im Feld 'Beispielfeld' das Wort 'Sonne' vorkommt:

SELECT * FROM Beispieltabelle WHERE CONTAINS(Beispielfeld,'Sonne')

Beispiel 1b:
Und dasselbe Wort in allen Feldern (die dem Index angehören, s.u.) dieser Tabelle zu suchen:

SELECT * FROM Beispieltabelle WHERE CONTAINS(*,'Sonne')

Beispiel 2:
Erweiterte Suchabfragen:

SELECT * FROM Beispieltabelle WHERE CONTAINS(*,'"So*" OR "Mond"')>

Beispiel 3:
Suchen nach ungefähren Begriffen:

SELECT * FROM Beispieltabelle WHERE FREETEXT(*,'Auto Fahrzeug PKW')
Index und Katalog löschen

So löschen Sie einen vorhandenen Index:

sp_fulltext_table 'Ihre_Tabelle', 'drop'

und danach noch den Katalog:

sp_fulltext_catalog 'VolltextKatalog1','drop'
Weitere Informationen zu diesem Thema finden Sie hier: