ALTER SEARCH PROPERTY LIST (Transact-SQL)

Gilt für:SQL ServerAzure 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'   
}  
;  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

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.

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