Feb
08
2013

MS SQL Volltextindex mit Skripten aktivieren

Kategorie: Windows allgemein   |  1 Kommentar
Support-Recherche: MS SQL Server


Wie kann ich die Volltextsuche des MS SQL Servers ohne ‚Management Studio‘ aktivieren? Ist auch die Express-Edition 2012 dafür geeignet?

Hinweise

Dieser Beitrag richtet sich an System-Administratoren und Entwickler, die einen Volltextindex mit Skripten anlegen möchten.

Wenn Sie die kostenlose Express-Edition 2012 verwenden, dann ist „Express with Advanced Services“ erforderlich. Bei unserem Test konnten wir mit dem Management Studio keinen Index erstellen, das System meldete „Volltext wird von dieser Edition von SQL Server nicht unterstützt (Microsoft.SqlServer.Smo)“. Falls Sie wegen diesem Problem hierher gefunden haben, dann können Sie den Katalog mit Skript 2 anlegen und diesen anschließend im Management Studio weiter konfigurieren.

Anwender einer Office Manager-Version ab 12.0.3.468 wählen bitte im Menü Datei | Optionen | Einstellungen die Seite Volltextindex und klicken auf den Schalter SQL Server-Index aktivieren.

Beispiel-Datenbank

Die folgende Beschreibung verwendet eine Office Manager-Archivdatenbank als Beispiel, sie ist aber allgemeingültig.

Datenbankname: „dmsdb“
Tabellen: Die Volltextsuche wird für „document“ und „docarch“ aktiviert.
Primärschlüssel: Der Schlüssel heißt in beiden Tabellen „docid“.
Name des Volltextkatalog: „FtiDocument“

SQL-Skripte

1. Ist die Volltextkomponente installiert?

SELECT fulltextserviceproperty('IsFulltextInstalled')

Wenn das Resultset „1“ zurück gibt, dann ist die Komponente auf dem Server installiert. Bei „0“ oder NULL sind die Voraussetzungen nicht erfüllt. Haben Sie eine geeignete Edition installiert?

2. Volltextkatalog anlegen

Folgenden SQL-Befehl an die Datenbank senden:

CREATE FULLTEXT CATALOG FtiDocument

3. Eindeutiger Tabellen-Index

Die Tabellen müssen einen eindeutigen, einspaltigen Index ohne NULL-Werte beinhalten. Falls noch kein geeigneter Index vorhanden ist, dann muss dieser mit CREATE UNIQUE INDEX angelegt werden. In unserem Beispiel ist aber bereits ein Primärschlüssel vorhanden. Mit folgender Abfrage wird dessen Indexname ermittelt:

SELECT ccu.Constraint_Name
FROM sys.indexes si
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu
ON si.name = ccu.Constraint_Name
WHERE is_primary_key = 1
AND ccu.Table_Catalog = 'dmsdb'
AND ccu.Table_Name = 'document'
AND ccu.Column_Name = 'docid'

Der Indexname steht im Resultset in Spalte „Constraint_Name“, zum Beispiel „PK__DOCUMENT__ABC123„.

4. Volltextindex für eine Tabelle anlegen

Index für die Tabelle „document“. Sie können alle Text-Spalten hinzufügen, hier „name, docno, project, category, contenttext“. Die letzte Zeile WITH CHANGE_TRACKING AUTO veranlasst eine automatische Index-Aktualisierung.

CREATE FULLTEXT INDEX ON document
(name, docno, project, category, contenttext)
KEY INDEX PK__DOCUMENT__ABC123 ON FtiDocument
WITH CHANGE_TRACKING AUTO

5. Weitere Tabellen

Wiederholen Sie die Schritte 3 und 4 für weitere Tabellen – in unserem Beispiel für „docarch“.

Weitere Informationen

MSDN: Erste Schritte mit der Volltextsuche

Office Manager: Zuvor das Datenfeld „contenttext“ anlegen


 

Ein Kommentar

Eigenen Kommentar schreiben oder eine Rückfrage stellen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Sie können folgende HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>