Поделиться через


ALTER SEARCH PROPERTY LIST (Transact-SQL)

Добавляет или удаляет указанное свойство поиска из указанного списка свойств поиска.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2012 до текущей версии).

Синтаксис

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

Аргументы

  • list_name
    Имя изменяемого списка свойств. list_name является идентификатором.

    Чтобы просмотреть имена существующих списков свойств, используйте представление каталога sys.registered_search_property_lists следующим образом.

    SELECT name FROM sys.registered_search_property_lists;
    
  • ADD
    Добавляет указанное свойство поиска в список свойств, указанный параметром list_name. Данное свойство зарегистрировано в списке свойств поиска. Прежде чем добавленные свойства можно будет использовать для поиска свойств, необходимо повторно заполнить связанные полнотекстовые индексы. Дополнительные сведения см. в разделе ALTER FULLTEXT INDEX (Transact-SQL).

    Примечание

    Чтобы добавить данное свойство поиска в список свойств поиска, необходимо предоставить идентификатор GUID набора свойств (property_set_guid) и целочисленный идентификатор свойства (property_int_id).Дополнительные сведения см. в разделе «Получение идентификаторов GUID набора свойств и целочисленных идентификаторов» далее в этом разделе.

  • property_name
    Указывает имя, которое будет использоваться для обозначения свойства в полнотекстовых запросах. property_name должно уникально определять свойство в наборе свойств. Имя свойства может содержать внутренние пробелы. Максимальная длина property_name равна 256 символам. Это имя должно быть описательным, таким как «Автор» или «Домашний адрес», или каноническим именем Windows свойства, например System.Author или System.Contact.HomeAddress.

    Разработчики будут использовать указанное значение property_name для идентификации свойства в предикате CONTAINS. Поэтому при добавлении свойства важно указать значение, которое значимо представляет свойство, определенное указанным идентификатором GUID набора свойств (property_set_guid) и идентификатором свойства (property_int_id). Дополнительные сведения об именах свойств см. в подразделе «Замечания» далее в этом разделе.

    Для просмотра имен свойств, существующих в списке свойств поиска для текущей базы данных, используйте представление каталога sys.registered_search_properties следующим образом:

    SELECT property_name FROM sys.registered_search_properties;
    
  • PROPERTY_SET_GUID ='property_set_guid'
    Указывает идентификатор набора свойств, к которому принадлежит свойство. Это глобальный уникальный идентификатор GUID. Дополнительные сведения о получении этого значения см. в подразделе «Замечания» далее в этом разделе.

    Для просмотра идентификатора GUID набора свойств любого свойства, существующего в списке свойств поиска для текущей базы данных, используйте представление каталога sys.registered_search_properties следующим образом:

    SELECT property_set_guid FROM sys.registered_search_properties;
    
  • PROPERTY_INT_ID =property_int_id
    Указывает целое число, определяющее свойство в наборе свойств. Дополнительные сведения о получении этого значения см. в подразделе «Замечания».

    Для просмотра целочисленного идентификатора любого свойства, существующего в списке свойств поиска для текущей базы данных, используйте представление каталога sys.registered_search_properties следующим образом:

    SELECT property_int_id FROM sys.registered_search_properties;
    

    Примечание

    Указанное сочетание идентификаторов property_set_guid и property_int_id должно быть уникальным в списке свойств поиска.При попытке добавить существующее сочетание операция ALTER SEARCH PROPERTY LIST завершается неудачей и выдается ошибка.Это означает, что для свойства можно определить только одно имя.

  • PROPERTY_DESCRIPTION ='property_description'
    Указывает задаваемое пользователем описание свойства. property_description — строка длиной не более 512 символов. Это необязательный параметр.

  • DROP
    Удаляет указанное свойство из списка свойств, указанного параметром list_name. Удаление свойства отменяет его регистрацию, поэтому оно становится недоступным для поиска.

Замечания

Каждый полнотекстовый индекс может иметь только один список свойств поиска.

Чтобы разрешить запросы по данному свойству поиска, необходимо добавить его в список свойств поиска полнотекстового индекса, а затем повторно заполнить индекс.

При задании свойства предложения PROPERTY_SET_GUID, PROPERTY_INT_ID и PROPERTY_DESCRIPTION можно расположить в любом порядке, разделив их запятыми и поместив в круглые скобки, например:

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

Примечание

В этом примере использовано имя свойства, System.Author, концептуально похожее на канонические имена свойств в Windows Vista (каноническое имя Windows).

Получение значений свойств

Полнотекстовый поиск сопоставляет свойство поиска с полнотекстовым индексом с помощью идентификатора GUID набора свойств и целочисленного идентификатора свойства. Сведения о способе получения этих свойств, определенных корпорацией Майкрософт, см. в разделе Поиск идентификаторов GUID наборов свойств и целочисленных идентификаторов свойств для свойств поиска. Дополнительные сведения о свойствах, определенных независимыми поставщиками программного обеспечения (ISV), см. в документации по этим поставщикам.

Наделение добавленных свойств возможностью поиска

Добавление свойства поиска в список свойств поиска приводит к регистрации свойства. Добавленное свойство может быть немедленно указано в запросах CONTAINS. Однако запросы полнотекстового каталога, использующие вновь добавленное свойство, не будут возвращать документы, пока не будет заполнен соответствующий полнотекстовый индекс. Например, следующий запрос, основанный на вновь добавленном свойстве new_search_property, не вернет документов, пока полнотекстовый индекс, связанный с целевой таблицей (table_name), не будет заполнен повторно:

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

Чтобы начать полное заполнение, используйте следующую инструкцию ALTER FULLTEXT INDEX (Transact-SQL):

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

Примечание

Повторное заполнение не требуется после удаления свойства из списка свойств, так как только свойства, остающиеся в списке свойств поиска, доступны для полнотекстовых запросов.

Связанные справочники

Создание списка свойств

Удаление списка свойств

Добавление и удаление списка свойств в полнотекстовом индексе

Запуск заполнения полнотекстового индекса

Разрешения

Необходимо разрешение CONTROL на список свойств.

Примеры

А.Добавление свойства

В следующем примере добавляется несколько свойств — Title, Author и Tags — к списку свойств с именем DocumentPropertyList.

Примечание

Пример создания списка свойств DocumentPropertyList см. в разделе 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.' );

Примечание

Необходимо связать данный список свойств поиска с полнотекстовым индексом перед его использованием для запросов в области свойства.Для этого используйте инструкцию ALTER FULLTEXT INDEX и укажите предложение SET SEARCH PROPERTY LIST.

Б.Удаление свойства

В следующем примере свойство Comments удаляется из списка свойств DocumentPropertyList.

ALTER SEARCH PROPERTY LIST DocumentPropertyList
DROP 'Comments' ;

См. также

Справочник

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)

Основные понятия

Поиск свойств документа с использованием списков свойств поиска

Поиск идентификаторов GUID наборов свойств и целочисленных идентификаторов свойств для свойств поиска