How-To: Einrichtung einer Volltextsuche im SQL Server

Mit einer Volltextsuche können Sie zeichenbasierte Spalten in Tabellen sehr effizient und schnell abfragen. Bevor Volltextabfragen durchgeführt werden können, muss ein Volltextkatalog und Index für die enthaltenen Spalten der Tabelle erstellt werden.

Folgende zeichenbasierte Spalten sind erlaubt: char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary(max) und FILESTREAM.

Damit eine Volltextsuche für eine Datenbank eingerichtet werden kann, muss das Feature „Volltext- und semantische Extraktion für die Suche“ für die Instanz installiert sein:

SQL Server Funktionsauswahl Volltextsuche

Nachdem die Funktion für die Instanz installiert wurde, können wir mit der Einrichtung des Volltextkatalogs fortfahren.

Dazu erweitern wir im SQL Server Management Studio (SSMS) unsere Datenbank, gehen danach unter Speicher->Volltextkataloge und erstellen mit einem Rechtsklick einen neuen Katalog:

SQL Server Volltextkataloge Volltextsuche

Beim Punkt „Unterscheidung nach Akzent“ definieren Sie, ob die Volltextsuche diakritische Zeichen wie Tilde (~) oder Akzentzeichen (´) ignoriert.

Sie können den Volltextkatalog ebenfalls über einen T-SQL Befehl erstellen:

USE [PerformanceDB]
GO
CREATE FULLTEXT CATALOG [Seminar_Katalog] WITH ACCENT_SENSITIVITY = ON
AS DEFAULT
AUTHORIZATION [dbo]
GO

Nachdem wir nun den Katalog erfolgreich erstellt haben, kann nun der Volltextindex (VIX) für unsere Tabellen/Spalten erstellt werden.

Dazu öffnen wir einfach die Eigenschaften des erstellten Volltextkatalogs und navigieren zur Seite Tabellen/Sichten:

SQL Server Volltextsuche

In dieser Maske können wir nun zunächst eine Tabelle auswählen, wo der VIX erstellt werden soll.

Als nächstes muss ein eindeutiger, einspaltiger Index der keine NULL-Werte zulässt erstellt oder ausgewählt werden. In unseren Fall erfüllt der Primärschlüssel-Index diese Voraussetzungen und daher können wir diesen verwenden.

Danach wählen wir geeignete Spalten für unseren VIX aus, die die Volltextsuche verwenden kann.

Für jede Spalte können noch zusätzliche Eigenschaften wie die Sprache oder stat. Semantik definiert werden.

Wenn keine Sprache definiert wird, verwendet der SQL Server die Standardsprache der Instanz. Die stat. Semantik wird bei der Semantischen Suche von unstrukturierten Dokumenten verwendet. Dabei werden statistisch relevante Schlüsselausdrücke extrahiert und danach indiziert. Dadurch können ähnliche Dokumente identifiziert werden und somit die Suche weiter erleichtern.

Zum Schluss muss noch definiert werden, wie Änderungen an den Inhalten der Spalten nachverfolgt werden sollen. Dabei gibt es 3 Auswahlmöglichkeiten: „Automatisch“, „Manuell“ und „Änderungen nicht nachverfolgen“. Weiterführende Informationen zu diesen und weiteren Optionen können Sie in der MSDN nachlesen: https://msdn.microsoft.com/de-de/library/ms187317(v=sql.120).aspx

Nun haben wir die Grundeinstellungen für unseren ersten Volltextindex durchgeführt und können diesen nun erstellen.

Wurde der VIX erfolgreich erstellt, können Sie nun mit entsprechenden Volltext-Abfragen die Volltextsuche nutzen.


Brauchen Sie noch einen Xpertenrat?


In einem unserer folgenden Beiträge werden wir uns dann noch etwas tiefer mit der Volltextsuche auseinandersetzen. Also seien Sie gespannt und abonnieren Sie unseren Newsletter!