2017-04-17 8 views
0

フルテキスト検索用にインデックスが作成されたテーブルがあります。その中で我々は、タグ内の値がSQL Server FTSが不正確な結果を返しています

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

...そう、我々はに類似した検索クエリを作成して何もすることができ、それがSearchText任意のレコードを返す必要があり、そのような

<zNSIC>1010</zNSIC> 

として値を格納します列には1500、1501、1502などの値を持つzNSICタグがあります。これは動作していますが、15から始まるzNSICというタグがない2つのレコードも戻っています。2つのレコードは

です。

私はそれがマッチとしてその値のDMを検討している理由を理解できません。何か案は?これは、SQL Server 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

[OK]を、ので、私はそれがワードブレーカとして>使っていると仮定していますか?それを無視する方法はありますか? –

+0

@geoffswartzこれは役に立ちます:https://docs.microsoft.com/en-us/sql/relational-databases/search/configure-and-manage-word-breakers-and-stemmers-for-search –

関連する問題