Sql全文搜索';c';在候选表中

Sql全文搜索';c';在候选表中,sql,full-text-search,Sql,Full Text Search,我在microsoft支持()上找到了以下内容: 是否可以使用“c”(已学习c语言的候选人)调用脚本 因为c是单字符的,所以不能用于全文搜索。仅当我按以下方式将stoplist设置为off时,脚本才会返回数据: ALTER FULLTEXT INDEX ON [ADNEOM.BE].[adneom].[T_CANDIDATE] SET STOPLIST = OFF < >但是返回的数据包括C和C++,我只希望C。 此外,我不认为禁用系统停止列表是一个好主意。从技术角度来看,除了问题中提到的最小

我在microsoft支持()上找到了以下内容:

是否可以使用“c”(已学习c语言的候选人)调用脚本

因为c是单字符的,所以不能用于全文搜索。仅当我按以下方式将stoplist设置为off时,脚本才会返回数据:

ALTER FULLTEXT INDEX ON [ADNEOM.BE].[adneom].[T_CANDIDATE] SET STOPLIST = OFF
< >但是返回的数据包括C和C++,我只希望C。
此外,我不认为禁用系统停止列表是一个好主意。

从技术角度来看,除了问题中提到的最小模式长度阈值外,我看不到任何东西阻止您对“c”字符进行全文搜索,因此答案是是的,这是可能的

我假定 CydiDeaReals>代码>是一个文本字段,<>代码>类似运算符是适用的,因此您可以考虑另一个解决方案:

select candidate_name, SSN from candidates where candidate_resume like '%C%';
但是,在这样做之前,你应该考虑一个字母的搜索会给你带来大量的假阳性结果。例如,我的答案包含14次

如果您有详细的想要和不想要的模式列表,可以将其添加到查询中:

--positive cases list
... where (candidate_resume like '%c/%' or candidate_resume like '%c,%' or ... 

--negative cases list
...) and candidate_resume not like '%C#% and candidate_resume not like '%mvc% and ...
免责声明:有很多这样的条款会减慢你的查询速度


免责声明:也许您需要“%c/%”,而不是“%c/%”,不幸的是,我不记得了。在这种情况下,请随意编辑我的帖子或添加评论,以便我修复它。

我编辑了我的问题,因为简历文件中的格式通常是相同的,我知道这些技能显示为“c/…”、“c,…”或“…,c”。是否可以只检查这些事件(而不是“C#”和“mvc”…)?当然,如果您已经定义了一组想要的和不想要的模式,您可以添加它们。请参阅我答案中的详细示例。感谢Alexey,对于文本字段,您的解决方案很好。对于另一种列格式(二进制),是否可以将contains或containsTable与模式一起使用?@user1845394我认为是的,但对性能的担忧仍然存在,甚至可能更糟。最后是我的猜测:)
--positive cases list
... where (candidate_resume like '%c/%' or candidate_resume like '%c,%' or ... 

--negative cases list
...) and candidate_resume not like '%C#% and candidate_resume not like '%mvc% and ...