none
keyword 로 FULL-TEXT 검색 시 검색 결과 부정확 RRS feed

  • 질문

  • MSSQL 2014 standard 64bit SP1 (build 12.0.4100.1) , OS (NT6,3 x64 build 9600) , collation (Korean_Wansung_CI_AS) 환경.

    1. full text search 테스트 테이블(ziptest)  생성 후, full text search index를 생성,
    zipkey roadname
    ------- -----------
    1 벚꽃
    2 벚꽃로
    3 벚꽃길
    10 중앙고등
    11 성동고등
    12 환일고등

    2. 조회시 where 조건을 3가지 (contains(roadname,N'벚꽃'), contains(roadname,N'벚꽃길'), contains(roadname,N'벚꽃로') )결과가 동일하게 3 row가 나옵니다. 결과셋이 커진 형상입니다
    zipkey roadname
    ------- -----------
    1 벚꽃
    2 벚꽃로
    3 벚꽃길

    조회시 contains(roadname,'고등')을 조회하면, '성동고등'이 빠집니다.
     zipkey roadname
    ------- -----------
     10 중앙고등
     12 환일고등

     


    3. 키워드에 대한 hex 값을 확인하려고 다음 쿼리도 수행해 봤습니다.  
    SELECT * FROM sys.dm_fts_index_keywords_by_document(DB_ID(), OBJECT_ID(N'dbo.ziptest')) WHERE display_term LIKE N'%벚꽃%'  -- 키워드 길이제한이 있는걸까요? 일정길이 이상은 비교하지는....
    keyword display_term column_id document_id occurrence_count
    --------- --------------- ----------- -------------- --------------------
    0xBC9AAF43 벚꽃 2 1 1
    0xBC9AAF43 벚꽃 2 2 1
    0xBC9AAF43 벚꽃 2 3 1
    0xBC9AAF43AE38 벚꽃길 2 3 1
    0xBC9AAF43B85C 벚꽃로 2 2 1

    4. 혹시나 noise word 영향이 있을까 싶어서...
    SELECT * FROM sys.dm_fts_index_keywords_by_document(DB_ID(), OBJECT_ID(N'dbo.ziptest')) WHERE display_term LIKE N'%벚꽃길%'
    SELECT * FROM sys.dm_fts_index_keywords_by_document(DB_ID(), OBJECT_ID(N'dbo.ziptest')) WHERE display_term LIKE N'%벚꽃로%'
    수행결과 noise word 문제는 아니라고 판단됩니다.

    5.인터넷 검색 결과 full-text-search 버그가 있는것 같긴 한데.. multi-byte관련 문자에 대한 내용은 없는거 같습니다.

    6. 패치가 나오지 않았을까 확인해봤습니다만..SP2 패치 내용에도 포함이 안된거 같구요

    7. 포럼글에서 동일한 내용을 발견했지만, 해당 답변(freetext사용)이 제게 도움이 되지는 않네요.

    해결방법이 있을까요?




    • 편집됨 버그버거 2016년 9월 11일 일요일 오후 10:24
    2016년 9월 11일 일요일 오후 2:44