ALTER SEARCH PROPERTY LIST (Transact-SQL)
Gilt für: SQL Server Azure SQL Managed Instance
Fügt der angegebenen Sucheigenschaftenliste eine angegebene Sucheigenschaft hinzu oder entfernt diese daraus.
Syntax
ALTER SEARCH PROPERTY LIST list_name
{
ADD 'property_name'
WITH
(
PROPERTY_SET_GUID = 'property_set_guid'
, PROPERTY_INT_ID = property_int_id
[ , PROPERTY_DESCRIPTION = 'property_description' ]
)
| DROP 'property_name'
}
;
Argumente
list_name
Der Name der Eigenschaftenliste, die geändert wird. list_name ist ein Bezeichner.
Mit der sys.registered_search_property_lists-Katalogsicht können Sie die Namen der vorhandenen Eigenschaftenlisten wie folgt aufrufen:
SELECT name FROM sys.registered_search_property_lists;
ADD
Fügt der durch list_name festgelegte Eigenschaftenliste eine angegebene Sucheigenschaft hinzu. Die Eigenschaft wird für die Sucheigenschaftenliste registriert. Bevor neu hinzugefügte Eigenschaften für die Eigenschaftensuche verwendet werden können, müssen die zugeordneten Volltextindizes wieder aufgefüllt werden. Weitere Informationen finden Sie unter ALTER FULLTEXT INDEX (Transact-SQL).
Hinweis
Um einer Sucheigenschaftenliste eine angegebene Sucheigenschaft hinzuzufügen, müssen Sie die Eigenschaftensatz-GUID (property_set_guid) und die ganzzahlige Eigenschafts-ID (property_int_id) bereitstellen. Weitere Informationen finden Sie unter "Abrufen von Eigenschaftensatz-GUIDS und -Bezeichnern" weiter unten in diesem Thema.
property_name
Gibt den Namen an, der in Volltextabfragen für die Eigenschaft verwendet werden soll. property_name muss die Eigenschaft innerhalb des Eigenschaftensatzes eindeutig bezeichnen. Eigenschaftsnamen können interne Leerzeichen enthalten. Die maximale Länge von property_name beträgt 256 Zeichen. Sie können entweder einen benutzerfreundlichen Namen wie „Autor“ oder „Privatadresse“ oder aber einen kanonischen Windows-Eigenschaftennamen wie System.Author oder System.Contact.HomeAddress verwenden.
Entwickler müssen den Wert verwenden, den Sie für property_name angeben, damit die Eigenschaft im CONTAINS-Prädikat identifiziert werden kann. Daher ist es beim Hinzufügen einer Eigenschaft wichtig, einen Wert anzugeben, durch den die von der angegebenen Eigenschaftensatz-GUID (property_set_guid) und dem angegebenen Eigenschaftsbezeichner (property_int_id) definierte Eigenschaft aussagekräftig bezeichnet wird. Weitere Informationen zu Eigenschaftsnamen finden Sie unter "Hinweise" weiter unten in diesem Thema.
Wenn Sie sich die Namen der Eigenschaften anzeigen lassen möchten, die derzeit in einer Sucheigenschaftenliste der aktuellen Datenbank vorhanden sind, können Sie die sys.registered_search_properties-Katalogsicht wie folgt verwenden:
SELECT property_name FROM sys.registered_search_properties;
PROPERTY_SET_GUID = 'property_set_guid'
Gibt den Bezeichner des Eigenschaftensatzes an, zu dem die Eigenschaft gehört. Bei diesem handelt es sich um einen global eindeutigen Bezeichner (GUID, Globally Unique Identifier). Informationen zum Abrufen dieses Werts finden Sie weiter unten in diesem Thema unter "Hinweise".
Wenn Sie sich die Eigenschaftensatz-GUID der Eigenschaften anzeigen lassen möchten, die derzeit in einer Sucheigenschaftenliste der aktuellen Datenbank vorhanden sind, können Sie die sys.registered_search_properties-Katalogsicht wie folgt verwenden:
SELECT property_set_guid FROM sys.registered_search_properties;
PROPERTY_INT_ID = property_int_id
Gibt die ganze Zahl an, die die Eigenschaft innerhalb des Eigenschaftensatzes identifiziert. Informationen zum Abrufen dieses Werts finden Sie unter "Hinweise".
Wenn Sie sich den ganzzahliger Bezeichner der Eigenschaften anzeigen lassen möchten, die derzeit in einer Sucheigenschaftenliste der aktuellen Datenbank vorhanden sind, können Sie die sys.registered_search_properties-Katalogsicht wie folgt verwenden:
SELECT property_int_id FROM sys.registered_search_properties;
Hinweis
Eine bestimmte Kombination von property_set_guid und property_int_id muss in einer Sucheigenschaftenliste eindeutig sein. Wenn Sie versuchen, eine vorhandene Kombination hinzuzufügen, kann ALTER SEARCH PROPERTY LIST nicht ordnungsgemäß ausgeführt werden, und es kommt zu einem Fehler. Dies bedeutet, dass Sie nur einen Namen für eine angegebene Eigenschaft definieren können.
PROPERTY_DESCRIPTION = 'property_description'
Gibt eine benutzerdefinierte Beschreibung der Eigenschaft an. property_description ist eine Zeichenfolge mit bis zu 512 Zeichen. Diese Option ist optional.
DROP
Löscht die angegebene Eigenschaft aus der Eigenschaftenliste, die durch list_name festgelegt wurde. Durch das Löschen einer Eigenschaft wird ihre Registrierung aufgehoben und Sie können nicht mehr danach suchen.
Bemerkungen
Jeder Volltextindex kann nur eine Sucheigenschaftenliste aufweisen.
Um das Abfragen für eine bestimmte Sucheigenschaft zu aktivieren, müssen Sie sie der Sucheigenschaftenliste des Volltextindexes hinzufügen und diesen anschließend neu auffüllen.
Wenn Sie eine Eigenschaft angeben, können Sie die PROPERTY_SET_GUID, PROPERTY_INT_ID und die PROPERTY_DESCRIPTION-Klausel in Form einer Trennzeichen getrennten Liste in Klammern in beliebiger Reihenfolge angeben. Beispiel:
ALTER SEARCH PROPERTY LIST CVitaProperties
ADD 'System.Author'
WITH (
PROPERTY_DESCRIPTION = 'Author or authors of a given document.',
PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9',
PROPERTY_INT_ID = 4
);
Hinweis
In diesem Beispiel wird der Eigenschaftsname System.Author
verwendet, der dem Konzept kanonischer Eigenschaftsnamen in Windows Vista (kanonischer Windows-Name) ähnlich ist.
Abrufen von Eigenschaftswerten
Bei der Volltextsuche wird eine Sucheigenschaft anhand der Eigenschaftssatz-GUID und der ganzzahligen Eigenschaften-ID einem Volltextindex zugeordnet. Wie Sie diese Werte für die von Microsoft definierten Eigenschaften erhalten, erfahren Sie unter Find Property Set GUIDs and Property Integer IDs for Search Properties (Suchen von Eigenschaftensatz-GUIDs und Integer-Eigenschaft-IDs für Sucheigenschaften). Weitere Informationen zu Eigenschaften, die von einem unabhängigen Softwareanbieter (ISV) definiert wurden, finden Sie in der Dokumentation des betreffenden Anbieters.
Hinzugefügte Eigenschaften als durchsuchbar festlegen
Durch Hinzufügen einer Sucheigenschaft zu einer Sucheigenschaftenliste wird die Eigenschaft registriert. Eine neu hinzugefügte Eigenschaft kann unmittelbar in CONTAINS-Abfragen angegeben werden. Bei Volltextabfragen mit Eigenschaftenbereichen in einer neu hinzugefügten Eigenschaft werden erst dann Dokumente zurückgegeben, wenn der zugeordnete Volltextindex neu aufgefüllt wurde. So werden von der folgenden Abfrage mit Eigenschaftenbereich für die neu hinzugefügte Eigenschaft new_search_property erst dann Dokumente zurückgegeben, wenn der mit der Zieltabelle table_name verknüpfte Volltextindex neu aufgefüllt wird:
SELECT column_name
FROM table_name
WHERE CONTAINS( PROPERTY( column_name, 'new_search_property' ),
'contains_search_condition');
GO
Um eine vollständige Auffüllung zu starten, können Sie in Transact-SQL die folgende ALTER FULLTEXT INDEX-Anweisung verwenden:
USE database_name;
GO
ALTER FULLTEXT INDEX ON table_name START FULL POPULATION;
GO
Hinweis
Die Neuauffüllung ist nicht erforderlich, nachdem eine Eigenschaft aus einer Eigenschaftenliste gelöscht wurde, da nur die Eigenschaften, die in der Sucheigenschaftenliste bleiben, für Volltextabfragen verfügbar sind.
Verwandte Verweise
So erstellen Sie eine Eigenschaftenliste
So löschen Sie eine Eigenschaftenliste:
So fügen Sie einem Volltextindex eine Eigenschaftenliste hinzu bzw. so entfernen Sie eine Eigenschaftenliste aus einem Volltextindex:
So führen Sie eine Auffüllung für einen Volltextindex aus:
Berechtigungen
Erfordert CONTROL-Berechtigungen für die Eigenschaftenliste.
Beispiele
A. Hinzufügen einer Eigenschaft
Im folgenden Beispiel werden der Eigenschaftenliste Title
die Eigenschaften Author
, Tags
und DocumentPropertyList
hinzugefügt.
Hinweis
Ein Beispiel, in dem die Eigenschaftenliste DocumentPropertyList
erstellt wird, finden Sie unter CREATE SEARCH PROPERTY LIST (Transact-SQL).
ALTER SEARCH PROPERTY LIST DocumentPropertyList
ADD 'Title'
WITH ( PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9', PROPERTY_INT_ID = 2,
PROPERTY_DESCRIPTION = 'System.Title - Title of the item.' );
ALTER SEARCH PROPERTY LIST DocumentPropertyList
ADD 'Author'
WITH ( PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9', PROPERTY_INT_ID = 4,
PROPERTY_DESCRIPTION = 'System.Author - Author or authors of the item.' );
ALTER SEARCH PROPERTY LIST DocumentPropertyList
ADD 'Tags'
WITH ( PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9', PROPERTY_INT_ID = 5,
PROPERTY_DESCRIPTION =
'System.Keywords - Set of keywords (also known as tags) assigned to the item.' );
Hinweis
Bevor Sie eine bestimmte Sucheigenschaftenliste für Abfragen mit Eigenschaftenbereichen verwenden können, müssen Sie sie einem Volltextindex zuordnen. Verwenden Sie dazu eine ALTER FULLTEXT INDEX-Anweisung, und geben Sie die SET SEARCH PROPERTY LIST-Klausel an.
B. Löschen einer Eigenschaft
Im folgenden Beispiel wird die Comments
-Eigenschaften aus der DocumentPropertyList
-Eigenschaftenliste gelöscht.
ALTER SEARCH PROPERTY LIST DocumentPropertyList
DROP 'Comments' ;
Siehe auch
CREATE SEARCH PROPERTY LIST (Transact-SQL)
DROP SEARCH PROPERTY LIST (Transact-SQL)
sys.registered_search_properties (Transact-SQL)
sys.registered_search_property_lists (Transact-SQL)
sys.dm_fts_index_keywords_by_property (Transact-SQL)
Suchen von Dokumenteigenschaften mithilfe von Sucheigenschaftenlisten
Suchen von Eigenschaftensatz-GUIDS und ganzzahligen Eigenschaft-IDs für Sucheigenschaften