SQL CLP 词后全文搜索不工作

SQL Full text search is not working after CLP word

如果我有一个 table,它有一个 varchar(max) 全文索引列,我将以下内容放入列中 'CLP3 365 367',则无法搜索到365或367。 containstable(mytable, , '"365"') 命令不提供任何数据。

如果我将字段设置为 'clp3 365 367',一切都很好。 如果没有 CLP(大写字母),那么一切正常。顺便说一句,数据库不区分大小写。

如果我在 'CLP' 之前放一些东西,FTS 会找到它。 CLP后找不到任何字

'CLP' 是某种魔法关键字吗? FTS 的语言是中性的,没有停止列表。 此脚本仅提供 2 条记录,而不是 3 条。

create table fts_test (id int identity(1,1) , fts varchar(max))
create  unique index fts_ind on fts_test (id)
insert into fts_test (fts) 
values ('CLP3 365 367'), ('clp3 365 367'), ('365 CLP3 367')
cREATE FULLTEXT INDEX ON fts_test (fts) key index fts_ind with stoplist=system;
select * from containstable(fts_test, *, '"365*"') 

微软支持"solved"问题。

CLP 是智利的货币。

当我们使用任何货币代码(例如:USD、INR、ZAR 等)时,可以看到相同的行为。"

所以在任何货币代码(大写)和后面的数字之后,它就找不到后面的数字。如果货币代码后有单词,则全文搜索会找到它并找到后面的数字。

我的解决方案是将文本中的所有货币代码转换为小写。 (因为我们不需要此功能,而且我们的数据库不区分大小写)。