全文搜索星号 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"搜索。
我有一个带有 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"搜索。