Sys.dm_fts_parser을 이용한 문자열 구문 분석

 

  • Version : SQL Server 2008, 2008R2, 2012

 

우리가 배열로 이루어진 문자열을 분할하여 단어의 목록을 보고 싶을 때가 있다. 과거에는 Like 함수나 parse 함수를 이용하여 특정 문자 단위로 잘라서 대칭표와 비교하기도 하였다.

SQL Server 2008 부터는 DMF(동적 관리 함수)의 sys.dm_fts_parser을 사용하여 구문 분석을 할 수 있다.

이 함수는 단어 분리기, 동의어 사전, 중지 목록 조합을 쿼리 문자열 입력에 적용한 후 최종 토큰화 결과를 반환한다. 토큰화 결과는 지정된 쿼리 문자열에 대한 전체 텍스트 엔진의 출력과 같다.

 

함수를 사용하려면 sysadmin 고정 서버 역할 멤버 자격과 지정된 중지 목록에 대한 액세스 권한이 필요 하다.

 

구문 : sys.dm_fts_parser('query_string', lcid, stoplist_id, accent_sensitivity)

Query_string

구문 분석할 쿼리

Lcid

구문을 분석하는데 사용할 단어 분리기의 지역 ID

Stoplist_id

Lcid로 식별되는 단어 분리기에서 사용할 중지 목록의 ID

(NULL : 중지 목록 사용하지 않음. 0 : STOPLIST 사용)

Accent_sensitivity

전체 텍스트 검색에서 분음 부호를 구분할지 여부를 제어.(0 : 구분안함, 1 : 구분)

 

 

[유의어]

동의어 사전이 입력의 전부 또는 일부를 확장하거나 대체.

SELECT * FROM SYS.DM_FTS_PARSER('FORMSOF( THESAURUS, "MANAGEMENT STUDIO")', 2057, 0, 0)

 

 

 

[형태소 분석]

형태소 분석기와 단어 분리기가 쿼리 용어와 해당 형태소 분석 형태를 구문 분석하는 방법.

SELECT * FROM SYS.DM_FTS_PARSER('FORMSOF( INFLECTIONAL, "MANAGEMENT STUDIO")', 2057, 0, 0)

 

 

 

[문자열에서 단어 분리]

SELECT * FROM SYS.DM_FTS_PARSER('SQL or MySQL or Oracle or DB or Microsoft or DBServer', 1033, 0, 0)

 

 

 

위 예제 외에 중지 목록과 악센트 구분 등을 이용하여 다양한 분석을 할 수 있다. 자세한 내용은 MSDN을 참고 한다.

참고 링크 : http://msdn.microsoft.com/ko-kr/library/cc280463.aspx




강성욱 / jevida@naver.com

Microsoft SQL Server MVP

Blog : http://sqlmvp.kr

Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 602
1726 인덱스에 대한 SORT_IN_TEMPDB 옵션 jevida(강성욱) 2016.09.14 875
1725 인덱스 DDL 작업의 디스크 공간 요구 사항 jevida(강성욱) 2016.09.14 934
1724 XML nodes() 함수를 이용한 OPENXML 교체 jevida(강성욱) 2016.09.14 1024
1723 XQuery를 사용한 XML 데이터 업데이트 jevida(강성욱) 2016.09.14 1947
1722 BCP XML 파일 형식 jevida(강성욱) 2016.09.14 1285
1721 SQL Server로 데이터 가져오기 jevida(강성욱) 2016.09.14 1297
1720 SQL Server Stored Procedure 암호화 jevida(강성욱) 2016.09.14 2780
1719 SQL Server 대칭키 vs 비대칭키 암호화 jevida(강성욱) 2016.09.14 1723
1718 SQL Server 마스터 키 관리 jevida(강성욱) 2016.09.14 1911
1717 대칭키를 사용하여 SQL Server 암호화(열 수준) 하기 jevida(강성욱) 2016.09.13 5802
1716 DMV를 사용하여 누락된 인덱스 확인 jevida(강성욱) 2016.09.13 1386
1715 DMV를 이용한 SQL Server 대기 상태 확인 jevida(강성욱) 2016.09.13 4119
1714 DMV를 이용한 SQL Server 성능 카운터 확인 jevida(강성욱) 2016.09.13 1840
1713 DMV를 이용한 SQL Server IO 성능 모니터 스냅샷 만들기 jevida(강성욱) 2016.09.13 1266
1712 DMV를 활용한 SQL Server 모니터링 jevida(강성욱) 2016.09.13 1297
1711 세션에 따른 캐시된 쿼리 플랜 설정 확인 jevida(강성욱) 2016.09.13 891
1710 SQL Server 특정 세션에 대한 마지막 실행 문장 확인 jevida(강성욱) 2016.09.13 748
1709 DMV - 데이터베이스 버퍼 메모리 사용량 확인 jevida(강성욱) 2016.09.13 3060
» Sys.dm_fts_parser을 이용한 문자열 구문 분석 jevida(강성욱) 2016.09.13 1352
1707 DMV에서 SQL Server 리소스 데이터베이스 값 jevida(강성욱) 2016.09.13 1091





XE Login