ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DB 엑세스(Access)에서 MSSQL로 옮기는 방법 + 풀텍스트서치 (Full Text Search) (2)
    Database/MS-SQL 2008. 10. 21. 12:29
    반응형

                                                                         추가 수정 file










    USE FTS;

    USE test;

    GO
    EXEC sp_fulltext_database 'enable'; -- 풀텍스트 서치하겠다  풀텍스트서치할때 반드시 실행
    GO

    EXEC sp_fulltext_database 'disable'; -- 풀텍스트 서치 안하겠다
    GO

    --TEST 조회
    select top 10 idx, title, writeday, content from tMSSQLQnA

    --전체 건수
    select count(idx) from tMSSQLQnA

    --title 컬럼의 용량
    select sum(datalength(title)) from tMSSQLQnA
    --대략 1M

    --content 컬럼의 용량
    select sum(datalength(content)) from tMSSQLQnA
    --대략 27M


    --전문검색을 활성화 시킵니다.
    if (select DATABASEPROPERTY(DB_NAME(), N'IsFullTextEnabled')) <> 1 
    exec sp_fulltext_database N'enable' 
    GO

    --전문검색 카탈로그가 만약 존재 한다면 삭제 합니다.
    if exists (select * from dbo.sysfulltextcatalogs where name = N'ftMSSQLQnA')
    exec sp_fulltext_catalog N'ftMSSQLQnA', N'drop'
    GO

    --전문검색 카탈로그를 생성합니다.
    if not exists (select * from dbo.sysfulltextcatalogs where name = N'ftMSSQLQnA')
    exec sp_fulltext_catalog N'ftMSSQLQnA', N'create' 
    GO

    --PK확인.- 없으면 생성 합니다.
    ALTER TABLE tMSSQLQnA WITH NOCHECK ADD 
    CONSTRAINT PKtMSSQLQnA PRIMARY KEY CLUSTERED 
    (
    idx
    )
    GO

    --전문검색에 키값을 지정합니다.
    exec sp_fulltext_table N'tMSSQLQnA', N'create', N'ftMSSQLQnA', N'PK_tMSSQLQnA'

    --전문검색에 컬럼추가 - content     0x0412 : 한글      0x0409 : 영어(미국)
    exec sp_fulltext_column N'tMSSQLQnA', N'content', N'add', 0x0412 

    --전문검색에 컬럼추가 - title
    exec sp_fulltext_column N'tMSSQLQnA', N'title', N'add', 0x0412 

    --전문검색 활성화를 시작합니다.
    exec sp_fulltext_table N'tMSSQLQnA', N'activate' 

    --풀파퓰레이션 시작
    EXEC sp_fulltext_catalog 'ftMSSQLQnA', 'start_full'

    --증분 파퓰레이션 시작 - Timestamp 컬럼이 없을 경우
    EXEC sp_fulltext_catalog 'ftMSSQLQnA', 'start_incremental'

    --Timestamp 컬럼을 테이블에 추가.
    ALTER TABLE tMSSQLQnA ADD TStamp timestamp NOT NULL
    GO

    --증분 파퓰레이션 시작
    EXEC sp_fulltext_catalog 'ftMSSQLQnA', 'start_incremental'

    --필요에 의해 스케줄 구성.


    --백업 키워드로 제목 검색
    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(title, '"백업"')

    --백업 키워드로 글내용 검색
    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(content, '"백업"')

    --백* 키워드로 제목 검색
    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(title, '"백*"')

    --백업 or 리스토어 키워드로 글내용 검색
    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(content, '"백업" or "리스토어"')

    --백* or 리스토어 키워드로 글내용 검색
    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(content, '"백*" or "리스토어"')

    --백업 near 에러 키워드로 글내용 검색
    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(content, '백업 near 에러')

    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE FREETEXT(content, N'에러') -- 전문검색 부분 (전문검색을위한 인덱스를 안해서 에러)

    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE content LIKE N'%에러%' -- N'에러' OR '에러' 써도된다 (그냥 서치)

    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(content, '백업 or 에러') -- 풀텍스트 서치

    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(content, N'에러') -- 풀텍스트 서치

    SELECT idx, title, writeday, content FROM tMSSQLQnA 
    WHERE contains(content, N'에러')
    OR contains(title,'에러') -- 풀텍스트 서치























    반응형

    댓글

Designed by Tistory.