Verwalten von Volltextindizes
Anzeigen und Ändern der Eigenschaften eines Volltextindexes
So zeigen Sie die Eigenschaften eines Volltextindexes in Management Studio an oder ändern sie
Erweitern Sie im Objekt-Explorer den Server.
Erweitern Sie Datenbanken, und erweitern Sie dann die Datenbank, die den Volltextindex enthält.
Erweitern Sie Tabellen.
Klicken Sie mit der rechten Maustaste auf die Tabelle, für die der Volltextindex definiert ist. Wählen Sie Volltextindex, und klicken Sie dann im Kontextmenü Volltextindex auf Eigenschaften. Das Dialogfeld Volltextindexeigenschaften wird geöffnet.
Im Bereich Seite auswählen können Sie eine der folgenden Seiten auswählen:
Seite BESCHREIBUNG Allgemein Ändert die grundlegenden Eigenschaften des Volltextindex. Beinhaltet mehrere änderbare Eigenschaften und eine Reihe von nicht änderbaren Eigenschaften, wie z. B. Datenbankname, Tabellenname und den Namen der Volltextschlüsselspalte. Die änderbaren Eigenschaften lauten:
Volltextindex-Stoppliste
Volltextindizierung aktiviert
Änderungsnachverfolgung
Sucheigenschaftenliste
Weitere Informationen finden Sie unter Volltextindexeigenschaften (Seite Allgemein).Spalten Zeigt die Tabellenspalten an, die für die Volltextindizierung verfügbar sind. Die ausgewählte Spalte bzw. die Spalten werden volltextindiziert. Sie können beliebig viele verfügbare Spalten auswählen und in den Volltextindex aufnehmen. Weitere Informationen finden Sie unter Volltextindexeigenschaften (Seite Spalten). Zeitpläne Verwenden Sie diese Seite, um Zeitpläne für einen SQL Server-Agent-Auftrag zu erstellen oder zu verwalten, der eine inkrementelle Tabellenauffüllung für die Auffüllungen des Volltextindexes beginnt. Weitere Informationen finden Sie unter Auffüllen von Volltextindizes.
**Wichtig** Nachdem Sie das Dialogfeld Volltextindexeigenschaften beendet haben, wird jeder neu erstellte Zeitplan einem SQL Server-Agent Auftrag (Inkrementelle Tabellenauffüllung auf database_name starten) zugeordnet.table_name).Klicken Sie auf OK. , um alle Änderungen zu speichern und das Dialogfeld Eigenschaften des Volltextindexes zu beenden.
Anzeigen der Eigenschaften von indizierten Tabellen und Spalten
Mehrere Transact-SQL-Funktionen wie OBJECTPROPERTYEX können verwendet werden, um den Wert verschiedener Volltextindizierungseigenschaften abzurufen. Diese Informationen sind für die Verwaltung und Problembehandlung der Volltextsuche hilfreich.
In der folgenden Tabelle sind die Volltexteigenschaften aufgeführt, die sich auf indizierte Tabellen und Spalten und die zugehörigen Transact-SQL-Funktionen beziehen.
Eigenschaft | BESCHREIBUNG | Funktion |
---|---|---|
FullTextTypeColumn |
TYPE COLUMN in der Tabelle, die die Dokumenttypinformationen der Spalte enthält. | COLUMNPROPERTY |
IsFulltextIndexed |
Gibt an, ob eine Spalte für die Volltextindizierung aktiviert wurde. | COLUMNPROPERTY |
IsFulltextKey |
Gibt an, ob der Index der Volltextschlüssel für eine Tabelle ist. | INDEXPROPERTY |
TableFulltextBackgroundUpdateIndexOn | Gibt an, ob für eine Tabelle das Update von Volltextindizes im Hintergrund aktiviert wurde. | OBJECTPROPERTYEX |
TableFulltextCatalogId |
ID des Volltextkatalogs, in dem die Daten des Volltextindex für die Tabelle gespeichert sind. | OBJECTPROPERTYEX |
TableFulltextChangeTrackingOn |
Gibt an, ob für eine Tabelle die Volltext-Änderungsnachverfolgung aktiviert ist. | OBJECTPROPERTYEX |
TableFulltextDocsProcessed |
Die Anzahl der seit dem Start der Volltextindizierung verarbeiteten Zeilen. | OBJECTPROPERTYEX |
TableFulltextFailCount | Die Anzahl von Zeilen, für die die Volltextsuche keinen Index erstellt hat. | OBJECTPROPERTYEX |
TableFulltextItemCount | Die Anzahl von Zeilen, für die ein Volltextindex erfolgreich erstellt wurde. | OBJECTPROPERTYEX |
TableFulltextKeyColumn |
Die Spalten-ID der Volltextspalte für den eindeutigen Schlüssel. | OBJECTPROPERTYEX |
TableFullTextMergeStatus |
Gibt an, ob eine Tabelle über einen Volltextindex verfügt, der gerade zusammengeführt wird. | OBJECTPROPERTYEX |
TableFulltextPendingChanges | Anzahl der zu verarbeitenden ausstehenden Änderungsnachverfolgungseinträge. | OBJECTPROPERTYEX |
TableFulltextPopulateStatus |
Der Auffüllungsstatus einer Volltexttabelle. | OBJECTPROPERTYEX |
TableHasActiveFulltextIndex |
Gibt an, ob eine Tabelle über einen aktiven Volltextindex verfügt. | OBJECTPROPERTYEX |
Abrufen von Informationen zur Volltextschlüsselspalte
Normalerweise müssen die Ergebnisse von CONTAINSTABLE- oder FREETEXTTABLE-Rowsetwertfunktionen mit der Basistabelle verknüpft werden. In solchen Fällen müssen Sie den Namen der eindeutigen Schlüsselspalte kennen. Sie können abfragen, ob ein bestimmter eindeutiger Index als Volltextschlüssel verwendet wird, und anschließend den Bezeichner der Volltextschlüsselspalte abrufen.
So überprüfen Sie, ob ein bestimmter eindeutiger Index als Volltextschlüsselspalte verwendet wird
Verwenden Sie eine SELECT-Anweisung, um die INDEXPROPERTY-Funktion aufzurufen. Verwenden Sie im Funktionsaufruf die OBJECT_ID-Funktion, um den Namen der Tabelle (table_name) in die Tabellen-ID zu konvertieren, geben Sie den Namen eines eindeutigen Indexes für die Tabelle an, und geben Sie die
IsFulltextKey
Indexeigenschaft wie folgt an:SELECT INDEXPROPERTY( OBJECT_ID('table_name'), 'index_name', 'IsFulltextKey' );
Diese Anweisung gibt den Wert 1 zurück, wenn der Index verwendet wird, um die Eindeutigkeit für die Spalte des Volltextschlüssels zu erzwingen, oder den Wert 0, wenn dies nicht der Fall ist.
Beispiel
Im folgenden Beispiel wird abgefragt, ob der PK_Document_DocumentID
-Index zum Erzwingen der Eindeutigkeit der Volltextschlüsselspalte verwendet wird:
USE AdventureWorks
GO
SELECT INDEXPROPERTY ( OBJECT_ID('Production.Document'), 'PK_Document_DocumentID', 'IsFulltextKey' )
Dieses Beispiel gibt den Wert 1 zurück, wenn der PK_Document_DocumentID
-Index verwendet wird, um die Eindeutigkeit der Volltextschlüsselspalte zu erzwingen. Andernfalls wird 0 oder NULL zurückgegeben. NULL impliziert, dass ein ungültiger Indexname verwendet wird, der Indexname der Tabelle nicht zugeordnet werden kann, die Tabelle nicht vorhanden ist oder eine andere Fehlerbedingung vorliegt.
So suchen Sie den Bezeichner der Volltextschlüsselspalte
Jede volltextfähige Tabelle beinhaltet eine Spalte, mit der die Eindeutigkeit aller Tabellenzeilen erzwungen wird (die UNIQUE**KEY-Spalte). Die
TableFulltextKeyColumn
-Eigenschaft, die mit der OBJECTPROPERTYEX-Funktion ermittelt werden kann, enthält die Spalten-ID der eindeutigen Schlüsselspalte.Um diesen Bezeichner abzurufen, können Sie mit einer SELECT-Anweisung die OBJECTPROPERTYEX-Funktion aufrufen. Verwenden Sie die OBJECT_ID-Funktion, um den Namen der Tabelle (table_name) in die Tabellen-ID zu konvertieren und die
TableFulltextKeyColumn
-Eigenschaft wie folgt anzugeben:SELECT OBJECTPROPERTYEX(OBJECT_ID( 'table_name'), 'TableFulltextKeyColumn' ) AS 'Column Identifier';
Beispiele
Im folgenden Beispiel wird der Bezeichner der Volltextschlüsselspalte oder NULL zurückgegeben. NULL impliziert, dass ein ungültiger Indexname verwendet wird, der Indexname der Tabelle nicht zugeordnet werden kann, die Tabelle nicht vorhanden ist oder eine andere Fehlerbedingung vorliegt.
USE AdventureWorks;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn');
GO
Das folgende Beispiel zeigt, wie der Bezeichner der eindeutigen Schlüsselspalte verwendet werden kann, um den Namen der Spalte zu ermitteln.
USE AdventureWorks;
GO
DECLARE @key_column sysname
SET @key_column = Col_Name(Object_Id('Production.Document'),
ObjectProperty(Object_id('Production.Document'),
'TableFulltextKeyColumn')
)
SELECT @key_column AS 'Unique Key Column';
GO
Dieses Beispiel gibt eine Resultsetspalte mit dem Namen Unique Key Column
zurück, die eine einzelne Zeile mit dem Namen der eindeutigen Schlüsselspalte (DocumentID) der Document-Tabelle enthält. Beachten Sie, dass diese Abfrage NULL zurückgibt, wenn ein ungültiger Indexname verwendet wird, der Indexname der Tabelle nicht zugeordnet werden kann, die Tabelle nicht vorhanden ist oder eine andere Fehlerbedingung vorliegt.
Deaktivieren oder erneutes Aktivieren einer Tabelle für Volltextindizierung
In SQL Server sind standardmäßig alle von Benutzern erstellten Datenbanken volltextfähig. Zudem wird eine einzelne Tabelle automatisch für die Volltextindizierung aktiviert, sobald ein Volltextindex für die Tabelle erstellt wird und dem Index eine Spalte hinzugefügt wird. Eine Tabelle wird für die Volltextindizierung automatisch deaktiviert, wenn die letzte Spalte aus dem Volltextindex der Tabelle entfernt wird.
Für eine Tabelle mit einem Volltextindex können Sie mit SQL Server Management Studio eine Tabelle für die Volltextindizierung manuell deaktivieren und erneut aktivieren.
So aktivieren Sie eine Tabelle für Volltextindizierung
Erweitern Sie die Servergruppe, erweitern Sie Datenbanken, und erweitern Sie die Datenbank, die die Tabelle enthält, die für Volltextindizierung aktiviert werden soll.
Erweitern Sie Tabellen, und klicken Sie mit der rechten Maustaste auf die Tabelle, die Sie deaktivieren oder für Volltextindizierung erneut aktivieren möchten.
Wählen Sie Volltextindexaus, und klicken Sie anschließend auf Volltextindizierung deaktivieren oder Volltextindizierung aktivieren.
Entfernen eines Volltextindexes aus einer Tabelle
So entfernen Sie einen Volltextindex einer Tabelle
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Tabelle mit dem Volltextindex, den Sie löschen möchten
Wählen Sie Volltextindex löschenaus.
Klicken Sie auf OK , wenn Sie aufgefordert werden, das Löschen des Volltextindexes zu bestätigen.