ALTER SEARCH PROPERTY LIST(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

지정된 검색 속성을 지정한 검색 속성 목록에 추가하거나 지정한 검색 속성 목록에서 삭제합니다.

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

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

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) 및 속성 int ID(property_int_id)를 제공해야 합니다. 자세한 내용은 이 항목의 뒷부분에 있는 "속성 집합 GUID 및 식별자 가져오기"를 참조하세요.

property_name
전체 텍스트 쿼리에서 속성을 식별하는 데 사용할 이름을 지정합니다. property_name 속성 집합 내의 속성을 고유하게 식별해야 합니다. 속성 이름은 내부에 공백을 포함할 수 있습니다. property_name 최대 길이는 256자입니다. 이 이름은 작성자 또는 집 주소와 같은 사용자에게 친숙한 이름이거나 System.Author 또는 System.Contact.HomeAddress와 같은 속성의 Windows 정식 이름일 수 있습니다.

개발자는 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(Globally Unique Identifier)입니다. 이 값을 가져오는 방법에 대한 자세한 내용은 이 항목의 뒷부분에 있는 "주의"를 참조하세요.

현재 데이터베이스의 검색 속성 목록에 있는 속성의 속성 집합 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_guidproperty_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   
      );  

참고 항목

이 예제에서는 Windows Vista(Windows 정식 이름 System.Author)에 도입된 정식 속성 이름의 개념과 유사한 속성 이름을 사용합니다.

속성 값 가져오기

전체 텍스트 검색은 속성 집합 GUID 및 속성 정수 ID를 사용하여 검색 속성을 전체 텍스트 인덱스로 매핑합니다. Microsoft에서 정의한 속성에 대해 이러한 ID를 가져오는 방법에 대한 자세한 내용은 검색 속성에 대한 속성 집합 GUID 및 속성 정수 ID 찾기를 참조하세요. 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 권한이 필요합니다.

예제

A. 속성 추가

다음 예제에서는 여러 속성-Title, AuthorTags-라는 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 및 속성 정수 ID찾기