ALTER SEARCH PROPERTY LIST (Transact-SQL)ALTER SEARCH PROPERTY LIST (Transact-SQL)

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions)

Agrega una propiedad de búsqueda especificada o la quita de la lista de propiedades de búsqueda especificada.Adds a specified search property to, or drops it from the specified search property list.

SintaxisSyntax

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

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentosArguments

list_namelist_name
Es el nombre de la lista de propiedades que se está modificando.Is the name of the property list being altered. list_name es un identificador.list_name is an identifier.

Para ver los nombres de las listas de propiedades existentes, use la vista de catálogo sys.registered_search_property_lists de la siguiente manera:To view the names of the existing property lists, use the sys.registered_search_property_lists catalog view, as follows:

SELECT name FROM sys.registered_search_property_lists;  

ADDADD
Agrega una propiedad de búsqueda especificada a la lista de propiedades especificada por list_name.Adds a specified search property to the property list specified by list_name. La propiedad se registra para la lista de propiedades.The property is registered for the search property list . Antes de que se puedan usar propiedades recién agregadas para la búsqueda de propiedades, el índice o los índices de texto completo asociados se deben volver a rellenar.Before newly added properties can be used for property searching, the associated full-text index or indexes must be repopulated. Para obtener más información, vea ALTER FULLTEXT INDEX (Transact-SQL).For more information, see ALTER FULLTEXT INDEX (Transact-SQL).

Nota

Para agregar una propiedad de búsqueda dada a una lista de propiedades de búsqueda, debe proporcionar el GUID del conjunto de propiedades (property_set_guid) y el identificador entero de propiedad (property_int_id).To add a given search property to a search property list, you must provide its property-set GUID (property_set_guid) and property int ID (property_int_id). Para obtener más información, vea "Obtener los GUID e identificadores de los conjuntos de propiedades", más adelante en este tema.For more information, see "Obtaining Property Set GUIDS and Identifiers," later in this topic.

property_nameproperty_name
Especifica el nombre que se va a usar para identificar la propiedad en consultas de texto completo.Specifies the name to be used to identify the property in full-text queries. property_name debe identificar exclusivamente la propiedad en el conjunto de propiedades.property_name must uniquely identify the property within the property set. El nombre de una propiedad puede contener espacios internos.A property name can contain internal spaces. La longitud máxima del atributo property_name es de 256 caracteres.The maximum length of property_name is 256 characters. Este nombre puede ser un nombre descriptivo, como Autor o Dirección particular, o bien el nombre canónico de Windows de la propiedad, como System.Author o System.Contact.HomeAddress.This name can be a user-friendly name, such as Author or Home Address, or it can be the Windows canonical name of the property, such as System.Author or System.Contact.HomeAddress.

Los desarrolladores deberán usar el valor especificado para property_name con el fin de identificar la propiedad en el predicado CONTAINS.Developers will need to use the value you specify for property_name to identify the property in the CONTAINS predicate. Por lo tanto, cuando se agregue una propiedad es importante especificar un valor que represente significativamente la propiedad definida por el GUID del conjunto de propiedades (property_set_guid) y el identificador de propiedad (property_int_id). especificados.Therefore, when adding a property it is important to specify a value that meaningfully represents the property defined by the specified property set GUID (property_set_guid) and property identifier (property_int_id). Para obtener más información sobre nombres de propiedades, vea la sección "Comentarios" más adelante en este tema.For more information about property names, see "Remarks," later in this topic.

Para ver los nombres de las propiedades que existen actualmente en una lista de propiedades de búsqueda de la base de datos actual, use la vista de catálogo sys.registered_search_properties de la siguiente manera:To view the names of properties that currently exist in a search property list of the current database, use the sys.registered_search_properties catalog view, as follows:

SELECT property_name FROM sys.registered_search_properties;  

PROPERTY_SET_GUID ='property_set_guid'PROPERTY_SET_GUID ='property_set_guid'
Especifica el identificador del conjunto de propiedades al que pertenece la propiedad.Specifies the identifier of the property set to which the property belongs. Se trata de un identificador único global (GUID).This is a globally unique identifier (GUID). Para obtener más información cómo obtener este valor, vea la sección "Comentarios" más adelante en este tema.For information about obtaining this value, see "Remarks," later in this topic.

Para ver el GUID del conjunto de propiedades de cualquier propiedad que exista actualmente en una lista de propiedades de búsqueda de la base de datos actual, use la vista de catálogo sys.registered_search_properties de la siguiente manera:To view the property set GUID of any property that exists in a search property list of the current database, use the sys.registered_search_properties catalog view, as follows:

SELECT property_set_guid FROM sys.registered_search_properties;  

PROPERTY_INT_ID =property_int_idPROPERTY_INT_ID =property_int_id
Especifica el entero que identifica la propiedad en su conjunto de propiedades.Specifies the integer that identifies the property within its property set. Para obtener información sobre cómo obtener este valor, vea "Comentarios".For information about obtaining this value, see "Remarks."

Para ver el identificador entero de cualquier propiedad que exista actualmente en una lista de propiedades de búsqueda de la base de datos actual, use la vista de catálogo sys.registered_search_properties de la siguiente manera:To view the integer identifier of any property that exists in a search property list of the current database, use the sys.registered_search_properties catalog view, as follows:

SELECT property_int_id FROM sys.registered_search_properties;  

Nota

Una determinada combinación formada por property_set_guid y property_int_id debe ser única en una lista de propiedades de búsqueda.A given combination of property_set_guid and property_int_id must be unique in a search property list. Si intenta agregar una combinación existente, se produce un error en la operación ALTER SEARCH PROPERTY LIST y se emite un error.If you try to add an existing combination, the ALTER SEARCH PROPERTY LIST operation fails and issues an error. Es decir, puede definir solo un nombre para una propiedad dada.This means that you can define only one name for a given property.

PROPERTY_DESCRIPTION ='property_description'PROPERTY_DESCRIPTION ='property_description'
Especifica una descripción definida por el usuario de la propiedad.Specifies a user-defined description of the property. property_description es una cadena de hasta 512 caracteres.property_description is a string of up to 512 characters. Esta opción es opcional.This option is optional.

DROPDROP
Quita la propiedad especificada de la lista de propiedades especificada por list_name.Drops the specified property from the property list specified by list_name. Si se quita una propiedad, se elimina del registro y, por tanto, ya no se pueden realizar búsquedas en ella.Dropping a property unregisters it, so it is no longer searchable.

ObservacionesRemarks

Cada índice de texto completo puede tener solo una lista de propiedades de búsqueda.Each full-text index can have only one search property list.

Para habilitar la realización de consultas en una propiedad de búsqueda dada, debe agregarla a la lista de propiedades de búsqueda del índice de texto completo y, a continuación, volver a rellenar el índice.To enable querying on a given search property, you must add it to the search property list of the full-text index and then repopulate the index.

Cuando especifique una propiedad puede organizar las cláusulas PROPERTY_SET_GUID, PROPERTY_INT_ID y PROPERTY_DESCRIPTION en cualquier orden, como una lista separada por comas entre paréntesis, por ejemplo:When specifying a property you can arrange the PROPERTY_SET_GUID, PROPERTY_INT_ID, and PROPERTY_DESCRIPTION clauses in any order, as a comma-separated list within parentheses, for example:

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

Nota

En este ejemplo, se usa el nombre de propiedad, System.Author, que es similar al concepto de los nombres de propiedad canónicos presentados en Windows Vista (nombre canónico de Windows).This example uses the property name, System.Author, which is similar to the concept of canonical property names introduced in Windows Vista (Windows canonical name).

Obtener valores de propiedadObtaining Property Values

La búsqueda de texto completo asigna una propiedad de búsqueda a un índice de texto completo con su GUID de conjunto de propiedades y su identificador entero de propiedad.Full-text search maps a search property to a full-text index by using its property set GUID and property integer ID. Para obtener información sobre cómo obtener estos valores para las propiedades definidas por Microsoft, vea Buscar GUID del conjunto de propiedades e identificadores de enteros de propiedad para las propiedades de búsqueda.For information about how to obtain these for properties that have been defined by Microsoft, see Find Property Set GUIDs and Property Integer IDs for Search Properties. Para obtener información sobre propiedades definidas por un fabricante de software independiente (ISV), vea la documentación de ese fabricante.For information about properties defined by an independent software vendor (ISV), see the documentation of that vendor.

Convertir las propiedades agregadas para que se puedan realizar búsquedas en ellasMaking Added Properties Searchable

Si se agrega una propiedad de búsqueda a una lista de propiedades, la propiedad se registra.Adding a search property to a search property list registers the property. Se puede especificar inmediatamente una propiedad recién agregada en consultas CONTAINS.A newly added property can be immediately specified in CONTAINS queries. No obstante, las consultas de texto completo referentes a propiedades de una propiedad recién agregada no devolverán documentos hasta que se vuelva a rellenar el índice de texto completo asociado.However, property-scoped full-text queries on a newly added property will not return documents until the associated full-text index is repopulated. Por ejemplo, la siguiente consulta referente a propiedades de una propiedad recién agregada, new_search_property, no devolverá ningún documento hasta que se vuelva a rellenar el índice de texto completo asociado con la tabla de destino (table_name):For example, the following property-scoped query on a newly added property, new_search_property, will not return any documents until the full-text index associated with the target table (table_name) is repopulated:

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

Para iniciar un llenado completo, use la siguiente instrucción ALTER FULLTEXT INDEX (Transact-SQL):To start a full population, use the following ALTER FULLTEXT INDEX (Transact-SQL) statement:

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

Nota

No es necesario el rellenado después de que se quite una propiedad de una lista de propiedades, ya que solo las propiedades que permanecen en la lista de propiedades de búsqueda están disponibles para realizar consultas de texto completo.Repopulation is not needed after a property is dropped from a property list, because only the properties that remain in the search property list are available for full-text querying.

Para crear una lista de propiedadesTo create a property list

Para quitar una lista de propiedadesTo drop a property list

Para agregar o quitar una lista de propiedades de un índice de texto completoTo add or remove a property list on a full-text index

Para ejecutar un rellenado en un índice de texto completoTo run a population on a full-text index

PermisosPermissions

Requiere el permiso CONTROL en la lista de propiedades.Requires CONTROL permission on the property list.

EjemplosExamples

A.A. Agregar una propiedadAdding a property

En los siguientes ejemplos se agregan varias propiedades (Title, Author y Tags) a una lista de propiedades denominada DocumentPropertyList.The following example adds several properties-Title, Author, and Tags-to a property list named DocumentPropertyList.

Nota

Para ver un ejemplo que crea la lista de propiedades DocumentPropertyList, vea CREATE SEARCH PROPERTY LIST (Transact-SQL).For an example that creates DocumentPropertyList property list, see 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.' );  

Nota

Debe asociar una lista de propiedades de búsqueda dada con un índice de texto completo antes de usarla para consultas referentes a propiedades.You must associate a given search property list with a full-text index before using it for property-scoped queries. Para ello, use una instrucción ALTER FULLTEXT INDEX y especifique la cláusula SET SEARCH PROPERTY LIST.To do so, use an ALTER FULLTEXT INDEX statement and specify the SET SEARCH PROPERTY LIST clause.

B.B. Quitar una propiedadDropping a property

En el siguiente ejemplo se quita la propiedad Comments de la lista de propiedades DocumentPropertyList.The following example drops the Comments property from the DocumentPropertyList property list.

ALTER SEARCH PROPERTY LIST DocumentPropertyList  
DROP 'Comments' ;  

Consulte tambiénSee Also

CREATE SEARCH PROPERTY LIST (Transact-SQL) CREATE SEARCH PROPERTY LIST (Transact-SQL)
DROP SEARCH PROPERTY LIST (Transact-SQL) DROP SEARCH PROPERTY LIST (Transact-SQL)
sys.registered_search_properties (Transact-SQL) sys.registered_search_properties (Transact-SQL)
sys.registered_search_property_lists (Transact-SQL) sys.registered_search_property_lists (Transact-SQL)
sys.dm_fts_index_keywords_by_property (Transact-SQL) sys.dm_fts_index_keywords_by_property (Transact-SQL)
Buscar propiedades de documento con listas de propiedades de búsqueda Search Document Properties with Search Property Lists
Buscar GUID del conjunto de propiedades e identificadores de enteros de propiedad para las propiedades de búsquedaFind Property Set GUIDs and Property Integer IDs for Search Properties