0

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

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”字符开头的行。

4

1 回答 1

0

FTS 引擎有一个奇怪的“功能”,当您尝试 find something as 时CONTAINS(Name, N'"n*"'),它会搜索所有数字,因为它将数字保留为 NN。

建立的最佳决策是在这两种情况下(CONTAINS(Name, N'"n*"'), CONTAINS(Name, N'"nn*"'))使用“喜欢”搜索。

于 2018-10-12T12:28:34.610 回答