全文搜索星号 returns 错误结果

Full text search asterisk returns wrong result

我有一个带有 FTS 索引的 Ship table,它被创建为:

CREATE FULLTEXT INDEX ON Ship 
(       
    Name 
)
KEY INDEX PK_Ship_Id
ON MyCatalog
WITH CHANGE_TRACKING AUTO, STOPLIST OFF;

当我 运行 查询如下时:

select Name From Ship where CONTAINS(Name, N'"n*"');

我得到了错误的结果,例如 "Vitamin D3 1000 Iu"。 但我只想获取名称字段中任何单词以 'n' char.

开头的行

FTS 引擎有奇怪的 'feature',当您尝试查找 CONTAINS(Name, N'"n*"') 时,它会搜索所有数字,因为它将数字保留为 NN。

最好的决定是在这两种情况下(CONTAINS(Name, N'"n*"'), CONTAINS(Name, N'"nn*"'))使用"like"搜索。