SQL Server FTS返回不准确的结果

时间:2017-04-17 15:34:31

标签: sql-server full-text-search

我们的表格中有一列为全文搜索编制索引。在其中我们存储诸如

之类的值
<zNSIC>1010</zNSIC>

标签中的值可以是任何值,然后我们创建类似于...的搜索查询

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

并且它应该返回SearchText列的zNSIC列标记值为1500,1501,1502等的任何记录。这样做但我也回来了记录中没有zNSIC标记从15开始的记录。我在两条记录中找到的最接近的匹配是

<zNSIC>DM15</zNSIC>

我无法弄清楚为什么它将该值视为匹配的DM。有任何想法吗?这是SQL Server 2014。

1 个答案:

答案 0 :(得分:1)

&#34; 15&#34;被解析为一个单独的短语,如下所示:

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