전체 텍스트 검색의 주요 변경 내용
이 항목에서는 전체 텍스트 검색의 주요 변경 내용에 대해 설명합니다. 이러한 변경 내용에 따라 이전 버전의 SQL Server에 기반을 둔 응용 프로그램, 스크립트 또는 기능을 사용하지 못할 수도 있습니다. 이러한 문제는 업그레이드할 때 발생할 수 있습니다. 자세한 내용은 업그레이드 관리자를 사용하여 업그레이드 준비을 참조하십시오.
SQL Server 2012에서 전체 텍스트 검색의 주요 변경 내용
sys.fulltext_languages에서 열 이름에 대한 데이터 정렬 변경
카탈로그 뷰 sys.fulltext_languages(Transact-SQL)에서 언어 name 열의 데이터 정렬이 Resource 데이터베이스의 고정된 데이터 정렬에서 SQL Server 인스턴스에 대해 선택된 기본 데이터 정렬로 변경되었습니다. 이에 따라 sys.syslanguages(Transact-SQL) 뷰를 sys.fulltext_languages와 조인할 때 name 열의 값을 비교할 수 있습니다. 예를 들어 기본 전체 텍스트 언어가 기본 데이터베이스 언어와 다른 모든 데이터베이스에 대해 쿼리할 수 있습니다.
SQL Server 2008 전체 텍스트 검색의 주요 변경 내용
다음은 SQL Server 2005와 SQL Server 2008 이상 버전 간의 전체 텍스트 검색에 적용되는 주요 변경 내용입니다.
기능 |
시나리오 |
SQL Server 2005 |
SQL Server 2008 이상 버전 |
---|---|---|---|
UDT(사용자 정의 형식)를 사용하는 CONTAINSTABLE |
전체 텍스트 키가 SQL Server 사용자 정의 형식입니다(예: MyType = char(1)). |
사용자 정의 형식에 할당된 형식의 키가 반환됩니다. 이 예에서는 char(1)입니다. |
사용자 정의 형식의 키가 반환됩니다. 이 예에서는 MyType입니다. |
CONTAINSTABLE 및 FREETEXTTABLE Transact-SQL 문의 top_n_by_rank 매개 변수 |
top_n_by_rank 쿼리에서 0이 매개 변수로 사용됩니다. |
0보다 큰 값을 사용해야 한다는 오류 메시지와 함께 실패합니다. |
성공하며 0개의 행을 반환합니다. |
CONTAINSTABLE 및 ItemCount |
변경 내용을 MSSearch로 밀어넣기 전에 기본 테이블에서 행을 삭제합니다. |
CONTAINSTABLE이 삭제할 레코드를 반환합니다. ItemCount가 변경되지 않습니다. |
CONTAINSTABLE이 삭제할 레코드를 반환하지 않습니다. |
ItemCount |
테이블에 Null 문서 또는 유형 열이 있습니다. |
인덱싱된 문서뿐 아니라 Null이거나 Null 유형의 문서도 ItemCount 값으로 카운트됩니다. |
인덱싱된 문서만 ItemCount 값으로 카운트됩니다. |
카탈로그 ItemCount |
Blob 열에 NULL 확장이 있습니다. |
카탈로그의 ItemCount로 카운트됩니다. |
카탈로그의 ItemCount로 카운트되지 않습니다. |
UniqueKeyCount |
카탈로그에서 고유 키 수를 쿼리합니다. 예를 들어 word1, word2, word3에 대해 두 테이블(테이블 1과 테이블 2)을 각각 쿼리합니다. |
UniqueKeyCount = 9. 다음 테이블은 이 값을 구하는 방법을 간략히 보여 줍니다. table1 = 3 table1의 전체 텍스트 인덱스에 대한 EOF = 1 table2 = 3 table2의 전체 텍스트 인덱스에 대한 EOF = 1 전체 텍스트 카탈로그 = 1 |
각 테이블의 UniqueKeyCount는 DISTINCT 키워드 수 + 1(0xFF)이며, 한 개 이상의 문서에 있는 동일 단어를 새 고유 키로 처리하지 않습니다. 카탈로그의 UniqueKeyCount는 카탈로그에 있는 각 테이블의 UniqueKeyCount 합계입니다. 다른 테이블에 있는 동일 단어가 고유 키로 처리됩니다. 이 경우 고유 키 수는 8입니다. |
precompute rank 서버 수준 옵션 |
FREETEXTTABLE 쿼리 성능 최적화. |
옵션이 1로 설정되면 top_n_by_rank로 지정된 FREETEXTTABLE 쿼리는 전체 텍스트 카탈로그에 저장된 미리 계산된 순위 데이터를 사용합니다. |
지원되지 않습니다. |
키 열을 업데이트할 경우의 sp_fulltext_pendingchanges |
두 행 테이블에서 한 행의 전체 텍스트 키 열을 업데이트하고 sp_fulltext_pendingchanges를 실행합니다. |
두 행이 표시됩니다. |
한 행만 표시됩니다. |
인라인 함수 |
전체 텍스트 연산자가 있는 인라인 함수 |
오류 메시지를 반환합니다. |
관련 행을 반환합니다. |
sp_fulltext_database를 사용하여 전체 텍스트 검색을 설정하거나 해제합니다. |
전체 텍스트 쿼리에 대한 결과가 반환되지 않습니다. 데이터베이스에서 전체 텍스트를 사용할 수 없는 경우 전체 텍스트 작업이 허용되지 않습니다. |
전체 텍스트 쿼리에 대한 결과를 반환하며 데이터베이스에서 전체 텍스트를 사용할 수 없는 경우라도 전체 텍스트 작업이 허용됩니다. |
|
로캘별 중지 단어 |
벨기에 프랑스어 및 캐나다 영어와 같이 부모 언어에서 파생된 로캘별 언어를 쿼리합니다. |
파생된 로캘별 언어를 부모 언어의 구성 요소(단어 분리기, 형태소 분석기 및 중지 단어)에서 처리합니다. 예를 들어 프랑스어(프랑스)는 프랑스어(벨기에)를 구문 분석하는 데 사용됩니다. |
각 LCID(로캘 ID)마다 중지 단어를 명시적으로 추가해야 합니다. 예를 들어 벨기에, 캐나다, 프랑스에 대해 LCID를 지정해야 합니다. |
동의어 사전 및 형태소 분석 |
동의어 사전 및 활용 형태(형태소 분석)를 사용합니다. |
동의어 사전 단어 확장 뒤에서 자동으로 형태소가 분석됩니다. |
확장에서 형태소 형태를 사용하려는 경우 형태소 형태를 명시적으로 추가해야 합니다. |
전체 텍스트 카탈로그 경로 및 파일 그룹 |
전체 텍스트 카탈로그 작업을 수행합니다. |
각 전체 텍스트 카탈로그가 물리적 경로를 사용하며 파일 그룹에 속합니다. 전체 텍스트 카탈로그는 데이터베이스 파일로 처리됩니다. |
전체 텍스트 카탈로그는 가상 개체이며 어떠한 파일 그룹에도 속하지 않습니다. 전체 텍스트 카탈로그는 전체 텍스트 인덱스 그룹을 나타내는 논리적 개념입니다.
|
이 카탈로그 뷰의 path, data_space_id 및 file_id를 사용합니다. |
이러한 열이 특정 값을 반환합니다. |
전체 텍스트 카탈로그가 더 이상 파일 시스템에 없으므로 이러한 열이 NULL을 반환합니다. |
|
더 이상 사용되지 않는 이 시스템 테이블의 path 열을 사용합니다. |
전체 텍스트 카탈로그의 파일 시스템 경로를 반환합니다. |
전체 텍스트 카탈로그가 더 이상 파일 시스템에 없으므로 NULL을 반환합니다. |
|
더 이상 사용되지 않는 이 저장 프로시저의 PATH 열을 사용합니다. |
전체 텍스트 카탈로그의 파일 시스템 경로를 반환합니다. |
전체 텍스트 카탈로그가 더 이상 파일 시스템에 없으므로 NULL을 반환합니다. |
|
이 저장 프로시저의 sp_help_fulltext_catalog_components를 사용합니다. |
현재 데이터베이스의 모든 전체 텍스트 카탈로그에 사용된 필터, 단어 분리기, 프로토콜 처리기 등 모든 구성 요소의 목록을 반환합니다. |
빈 행을 반환합니다. |
|
IsFullTextEnabled 속성을 사용합니다. |
IsFullTextEnabled 설정은 지정된 데이터베이스에서 전체 텍스트 검색이 설정되었는지 여부를 나타냅니다. |
이 열의 값이 아무런 영향을 주지 않습니다. 사용자 데이터베이스는 전체 텍스트 검색을 사용하도록 항상 설정됩니다. |