MSSQL FULLTEXTSEARCH 로 contains 활용하기 (본문검색)
설치형 MSSQL 에서 구축하기
아래 FULLTEXTSEARCH 엔진을 통해 제목과 내용 검색을 하도록 하였습니다.
아래 구문은 차후 실 서버에 이관 시, FTS 설정을 수동으로 할경우를 대비하여 만든 쿼리 구문입니다.
use LocalNaeil
-- default fulltext language 를한국어로~
EXEC sp_configure 'show advanced option', '1';
exec sp_configure 'default full-text language',1042
reconfigure with override
-- database fulltext 활성화
exec sp_fulltext_database 'enable'
-- 카테고리조회
select * from sys.fulltext_catalogs
-- 카테고리생성
CREATE FULLTEXT CATALOG UNIV_Article_FTS
IN PATH 'D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\fulltext' as default
-- fulltext index 생성하기
CREATE FULLTEXT INDEX ON dbo.UNIV_Article(TITLE, ContentsTextOnly)
key index PK_UNIV_Article
on UNIV_Article_FTS
WITH CHANGE_TRACKING AUTO
-- fulltext index 속성확인
select OBJECT_NAME(OBJECT_ID), * from sys.fulltext_index_columns
-- fulltext index table 확인
exec sp_help_fulltext_tables
select Title, ContentsTextOnly, ID from UNIV_Article
where contains(Title,'라인')
OR contains(ContentsTextOnly,'라인')
GO
AWS 에 설치되어 있는 RDS 경우
AWS 에 설치되어 있는 RDS 경우는 아래와 같이 사용하시면 됩니다.
exec sp_fulltext_database 'enable'
-- FTS 만들기
create fulltext catalog UNIV_COM_TrackingUser_FTS as default
-- FTS 에 특정 테이블의 필드값 설정하기
CREATE FULLTEXT INDEX ON dbo.UNIV_COM_TrackingUser(RefererAccessed,comment)
key index PK_UNIV_COM_TrackingUser
on UNIV_COM_TrackingUser_FTS
WITH CHANGE_TRACKING AUTO
-- 특정 테이블에서 FTS 로 조건문 걸어보기
select comment from UNIV_COM_TrackingUser
where contains(Comment,'게시판')