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


ALTER SEARCH PROPERTY LIST (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

Синтаксис

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.

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

В следующем примере свойство 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 для наборов свойств и целочисленных идентификаторов свойств для свойств поиска