ALTER SEARCH PROPERTY LIST (Transact-SQL)

Ajoute une propriété de recherche spécifiée à la liste de propriétés de recherche spécifiée ou la supprime de cette liste.

Important

CREATE SEARCH PROPERTY LIST, ALTER SEARCH PROPERTY LIST et DROP SEARCH PROPERTY LIST sont uniquement pris en charge avec le niveau de compatibilité 110. Ces instructions ne sont pas prises en charge avec un niveau de compatibilité inférieur.

Syntaxe

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' 
}
;

Arguments

  • list_name
    Nom de la liste de propriétés modifiée. list_name est un identificateur.

    Pour consulter les noms des listes de propriétés existantes, utilisez l'affichage catalogue sys.registered_search_property_lists, comme suit :

    SELECT name FROM sys.registered_search_property_lists;
    
  • ADD
    Ajoute une propriété de recherche spécifiée à la liste de propriétés spécifiée par list_name. La propriété est inscrite pour la liste des propriétés de recherche. Avant que les propriétés récemment ajoutées puissent être utilisées pour la recherche de propriétés, l'index ou les index de recherche en texte intégral associé doivent être remplis à nouveau. Pour plus d'informations, consultez ALTER FULLTEXT INDEX (Transact-SQL).

    [!REMARQUE]

    Pour ajouter une propriété de recherche donnée à une liste de propriétés de recherche, vous devez fournir son GUID du jeu de propriétés (property_set_guid) et son identificateur entier de propriété (property_int_id). Pour plus d'informations, consultez la section« Obtention de GUID de jeux de propriétés et d'identificateurs », dans la suite de cette rubrique.

  • property_name
    Spécifie le nom à utiliser pour identifier la propriété dans les requêtes de texte intégral. property_name doit identifier la propriété de manière unique dans le jeu de propriétés. Un nom de propriété peut contenir des espaces internes. Le paramètre property_name a une longueur maximale de 256 caractères. Ce nom peut être un nom convivial, correspondant par exemple à l'auteur ou au domicile, ou il peut s'agir du nom canonique Windows de la propriété, tel que System.Author ou System.Contact.HomeAddress.

    Les développeurs devront utiliser la valeur que vous spécifiez pour property_name pour identifier la propriété dans le prédicat CONTAINS. Par conséquent, lors de l'ajout d'une propriété, il est important de spécifier une valeur qui représente la propriété définie par le GUID du jeu de propriétés spécifié de manière significative (property_set_guid) et l'identificateur de propriété (property_int_id). Pour plus d'informations sur les noms de propriété, consultez la section « Notes », plus loin dans cette rubrique.

    Pour consulter les noms des propriétés qui existent actuellement dans une liste de propriétés de recherche de la base de données actuelle, utilisez l'affichage catalogue sys.registered_search_properties, comme suit :

    SELECT property_name FROM sys.registered_search_properties;
    
  • PROPERTY_SET_GUID ='property_set_guid'
    Spécifie l'identificateur du jeu de propriétés auquel appartient la propriété. Il s'agit d'un identificateur global unique (GUID). Pour plus d'informations sur l'obtention de cette valeur, consultez les « Notes », dans la suite de cette rubrique.

    Pour consulter le GUID d'un jeu de propriétés pour une propriété qui figure actuellement dans une liste de propriétés de recherche de la base de données actuelle, utilisez l'affichage catalogue sys.registered_search_properties, comme suit :

    SELECT property_set_guid FROM sys.registered_search_properties;
    
  • PROPERTY_INT_ID =property_int_id
    Spécifie l'entier qui identifie la propriété dans son jeu de propriétés. Pour plus d'informations sur l'obtention de cette valeur, consultez la section « Notes ».

    Pour consulter l'identificateur entier d'une propriété figurant dans une liste de propriétés de recherche de la base de données actuelle, utilisez l'affichage catalogue sys.registered_search_properties, comme suit :

    SELECT property_int_id FROM sys.registered_search_properties;
    

    [!REMARQUE]

    Une combinaison donnée de property_set_guid et de property_int_id doit être unique dans une liste de propriétés de recherche. Si vous essayez d'ajouter une combinaison existante, l'opération ALTER SEARCH PROPERTY LIST échoue et génère une erreur. Cela signifie que vous pouvez définir uniquement un nom pour une propriété donnée.

  • PROPERTY_DESCRIPTION ='property_description'
    Spécifie une description définie par l'utilisateur de la propriété. property_description est une chaîne comprenant jusqu'à 512 caractères. Cette option est facultative.

  • DROP
    Supprime la propriété spécifiée dans la liste de propriétés spécifiée par list_name. La suppression d'une propriété annule son inscription ; elle ne peut donc plus faire l'objet d'une recherche.

Notes

Chaque index de recherche en texte intégral ne peut avoir qu'une seule liste de propriétés de recherche.

Pour permettre l'interrogation sur une propriété de recherche donnée, vous devez l'ajouter à la liste des propriétés de recherche de l'index de recherche en texte intégral, puis remplir à nouveau l'index.

Lors de la spécification d'une propriété, vous pouvez réorganiser les clauses PROPERTY_SET_GUID, PROPERTY_INT_ID et PROPERTY_DESCRIPTION dans n'importe quel ordre, comme une liste séparée par des virgules mise entre parenthèses. Exemple :

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 
      );

[!REMARQUE]

Cet exemple utilise le nom de la propriété, System.Author, qui est semblable au concept de noms de propriété canoniques présenté dans Windows Vista (nom canonique Windows).

Obtention de valeurs de propriété

La recherche en texte intégral mappe une propriété de recherche à un index de recherche en texte intégral à l'aide de son GUID du jeu de propriétés et d'un identificateur de propriété entier. Pour plus d'informations sur la méthode d'obtention de ces informations pour les propriétés définies par Microsoft, consultez Recherche des GUID du jeu de propriétés et des ID d'entier de propriétés pour les propriétés de recherche. Pour plus d'informations sur les propriétés définies par un éditeur de logiciels indépendant (ISV), consultez la documentation de ce dernier.

Recherche possible avec des propriétés ajoutées

L'ajout d'une propriété de recherche à une liste de propriétés de recherche permet d'inscrire la propriété. Une propriété ajoutée récemment peut être spécifiée immédiatement dans les requêtes CONTAINS. Toutefois, les requêtes de texte intégral avec étendue aux propriétés sur une propriété ajoutée récemment ne retourneront pas de documents tant que l'index de recherche en texte intégral associé n'aura pas été à nouveau rempli. Par exemple, la requête suivante de portée propriété exécutée sur une propriété ajoutée récemment, new_search_property, ne retournera pas de documents tant que l'index de recherche en texte intégral associé à la table cible (table_name) n'aura pas été à nouveau rempli :

SELECT column_name FROM table_name WHERE CONTAINS( PROPERTY( column_name, 'new_search_property' ), 'contains_search_condition');
GO 

Pour démarrer un remplissage complet, utilisez l'instruction ALTER FULLTEXT INDEX (Transact-SQL) suivante :

USE database_name;
GO
ALTER FULLTEXT INDEX ON table_name START FULL POPULATION;
GO

[!REMARQUE]

Le remplissage n'est pas nécessaire après la suppression d'une propriété d'une liste de propriétés, car seules les propriétés qui restent dans la liste des propriétés de recherche sont disponibles pour l'interrogation en texte intégral.

Références connexes

Pour créer une liste de propriétés

Pour supprimer une liste de propriétés

Pour ajouter ou supprimer une liste de propriétés sur un index de recherche en texte intégral

Pour exécuter un remplissage sur un index de recherche en texte intégral

Autorisations

Requiert l'autorisation CONTROL sur la liste de propriétés.

Exemples

A.Ajout d'une propriété

L'exemple suivant ajoute plusieurs propriétés (Title, Author et Tags) à une liste de propriétés nommée DocumentPropertyList.

[!REMARQUE]

Pour obtenir un exemple qui crée la liste de propriétés DocumentPropertyList, consultez 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.' );

[!REMARQUE]

Vous devez associer une liste de propriétés de recherche donnée à un index de recherche en texte intégral avant de pouvoir l'utiliser dans le cadre de requêtes avec étendue aux propriétés. Pour ce faire, utilisez une instruction ALTER FULLTEXT INDEX et spécifiez la clause SET SEARCH PROPERTY LIST.

B.Suppression d'une propriété

L'exemple suivant supprime la propriété Comments dans la liste de propriétés DocumentPropertyList.

ALTER SEARCH PROPERTY LIST DocumentPropertyList
DROP 'Comments' ;

Voir aussi

Référence

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)

Concepts

Rechercher les propriétés du document à l'aide des listes de propriétés de recherche

Recherche des GUID du jeu de propriétés et des ID d'entier de propriétés pour les propriétés de recherche