Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CLP word之后SQL全文搜索不起作用_Sql_Full Text Search - Fatal编程技术网

CLP word之后SQL全文搜索不起作用

CLP word之后SQL全文搜索不起作用,sql,full-text-search,Sql,Full Text Search,如果我有一个表,它有一个varchar(max)全文索引列,我会在该列中添加以下内容 “CLP3 365 367”,则无法搜索365或367。 containstable(mytable““365”)命令不提供任何数据 如果我将字段设置为“clp3 365 367”,则一切正常。 如果没有CLP(upcase),则一切正常。顺便说一下,数据库不区分大小写 如果我在“CLP”之前放了什么,FTS就会找到它。在CLP之后,它找不到任何单词 “CLP”是一种神奇的关键词吗? 金融时报的语言是中立的,没

如果我有一个表,它有一个varchar(max)全文索引列,我会在该列中添加以下内容 “CLP3 365 367”,则无法搜索365或367。 containstable(mytable““365”)命令不提供任何数据

如果我将字段设置为“clp3 365 367”,则一切正常。 如果没有CLP(upcase),则一切正常。顺便说一下,数据库不区分大小写

如果我在“CLP”之前放了什么,FTS就会找到它。在CLP之后,它找不到任何单词

“CLP”是一种神奇的关键词吗? 金融时报的语言是中立的,没有禁止名单。 此脚本仅提供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*"') 
Microsoft支持“解决”了该问题

中电是智利的货币

当我们使用任何货币代码(例如:美元、印度卢比、南非兰特等)时,都可以看到相同的行为。”

因此,在任何货币代码(大写)和后面的数字之后,它都找不到下面的数字。如果货币代码后面有单词,则全文搜索将找到它并找到后面的数字

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