2017-04-17 5 views
0

테이블에 전체 텍스트 검색을 위해 인덱싱 된 열이 있습니다. 그것에서 우리는SQL Server FTS가 부정확 한 결과를 반환 함

SELECT KEY 
FROM CONTAINSTABLE(SearchTable, SearchText, '("<zNSIC>15*")') 

태그 내의 값은 그럼 무엇이든 우리가 유사한 검색 쿼리를 만들 수 등

<zNSIC>1010</zNSIC> 

로 값을 ... 저장하고 모든 기록을 반환해야 어디 SearchText 열은 1500, 1501, 1502 등과 같은 값을 가진 zNSIC 태그를 가지고 있습니다. 그러나 이것은 또한 작동하고 있습니다. 15에서 시작하는 zNSIC 태그가없는 몇 개의 레코드가 다시 나타납니다. 2에서 찾을 수있는 가장 근접한 일치 기록은

입니다.

그 이유는 DM이 해당 값의 일치를 고려하고있는 이유를 알 수 없습니다. 어떤 아이디어? 이는 SQL 서버 2014

답변

1

인 여기에서 알 수있는 바와 같이, "15"은 별도의 문구로 파싱된다

select keyword, special_term, display_term, source_term 
    from sys.dm_fts_parser('("<zNSIC>15*")', 1033, 0, 0); 

keyword     special_term display_term source_term 
0x007A006E007300690063 Exact Match  znsic   <zNSIC>15 
0x00310035    Exact Match  15    <zNSIC>15 
0x006E006E00310035  Exact Match  nn15   <zNSIC>15 
+0

좋아, 그래서 나는 그것이 단어 분리기로> 사용하고 있으리라 믿고있어? 그걸 무시할 수있는 방법이 있을까요? –

+0

@geoffswartz 도움이 될 수 있습니다. https://docs.microsoft.com/en-us/sql/relational-databases/search/configure-and-manage-word-breakers-and-stemmers-for-search –