我们的表格中有一列为全文搜索编制索引。在其中我们存储诸如
之类的值<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。
答案 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