Share via


Verwalten von Volltextindizes

In diesem Thema

  • Anzeigen und Ändern der Eigenschaften eines Volltextindexes

  • Anzeigen der Eigenschaften von indizierten Tabellen und Spalten

  • Abrufen von Informationen zur Volltextschlüsselspalte

  • Deaktivieren oder erneutes Aktivieren einer Tabelle für Volltextindizierung

  • Entfernen eines Volltextindexes aus einer Tabelle

Anzeigen und Ändern der Eigenschaften eines Volltextindexes

So zeigen Sie die Eigenschaften eines Volltextindexes in Management Studio an oder ändern sie

  1. Erweitern Sie im Objekt-Explorer den Server.

  2. Erweitern Sie Datenbanken, und erweitern Sie dann die Datenbank, die den Volltextindex enthält.

  3. Erweitern Sie Tabellen.

  4. 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.

  5. 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 Volltextindex-Eigenschaften (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 Volltextindex-Eigenschaften (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.

    Wichtiger HinweisWichtig

    Sobald Sie das Dialogfeld Volltextindexeigenschaften schließen, werden alle neu erstellten Zeitpläne einem SQL Server-Agent-Auftrag zugeordnet (Start Incremental Table Population on database_name.table_name).

  6. Klicken Sie auf OK. , um vorgenommene Änderungen zu speichern und das Dialogfeld Volltextindexeigenschaften zu schließen.

[NACH OBEN]

Anzeigen der Eigenschaften von indizierten Tabellen und Spalten

Mehrere Transact-SQL-Funktionen, z. B. OBJECTPROPERTYEX, können verwendet werden, um den Wert verschiedener Eigenschaften der Volltextindizierung abzurufen. Diese Informationen sind für die Verwaltung und Problembehandlung der Volltextsuche hilfreich.

Die folgende Tabelle enthält die Volltexteigenschaften, die sich auf indizierte Tabellen und Spalten beziehen, sowie die zugehörigen Transact-SQL-Funktionen.

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

[Nach oben]

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. Geben Sie im Funktionsaufruf die OBJECT_ID-Funktion an, um den Namen der Tabelle (table_name) in die Tabellen-ID umzuwandeln. Geben Sie den Namen eines eindeutigen Indexes der Tabelle und die IsFulltextKey-Indexeigenschaft an, wie im folgenden Beispiel gezeigt:

    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, über die die Eindeutigkeit aller Tabellenzeilen erzwungen wird (die eindeutige Schlüsselspalte). 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 umzuwandeln, und geben Sie die TableFulltextKeyColumn-Eigenschaft wie folgt an:

    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.

[Nach oben]

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

  1. Erweitern Sie die Servergruppe, erweitern Sie Datenbanken, und erweitern Sie die Datenbank, die die Tabelle enthält, die für Volltextindizierung aktiviert werden soll.

  2. Erweitern Sie Tabellen, und klicken Sie mit der rechten Maustaste auf die Tabelle, die Sie deaktivieren oder für Volltextindizierung erneut aktivieren möchten.

  3. Wählen Sie Volltextindex aus, und klicken Sie dann auf Volltextindizierung deaktivieren oder Volltextindizierung aktivieren.

[NACH OBEN]

Entfernen eines Volltextindexes aus einer Tabelle

So entfernen Sie einen Volltextindex einer Tabelle

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Tabelle mit dem Volltextindex, den Sie löschen möchten

  2. Wählen Sie Volltextindex löschen aus.

  3. Klicken Sie auf OK, wenn Sie aufgefordert werden, das Löschen des Volltextindexes zu bestätigen.

[Nach oben]