Sql全文搜索候选表中的'c'

时间:2014-05-05 11:38:08

标签: sql full-text-search

我在微软支持(http://technet.microsoft.com/en-us/library/ms142547(v=SQL.105).aspx)上找到了这个:

SELECT candidate_name,SSN FROM candidates WHERE CONTAINS(candidate_resume,”SQL Server”)

是否可以使用" c"来调用脚本。 (已经学过C语言的候选人)?

因为c是单个字符,所以它不适用于全文搜索。只有当我将停止列表设置为关闭时,脚本才会返回数据:

ALTER FULLTEXT INDEX ON [ADNEOM.BE].[adneom].[T_CANDIDATE] SET STOPLIST = OFF

但返回的数据也包括c#和c ++,我只想要C. 另外,我不认为禁用系统停止列表是一个好主意。

1 个答案:

答案 0 :(得分:1)

从技术角度来看,我没有看到任何阻止你在" c"上进行全文搜索的内容。字符,除了问题中提到的最小模式长度阈值,所以答案是是的,有可能

我认为candidate_resume是一个文本字段,like运算符适用,因此您可以考虑另一种解决方案:

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 /%',我不记得不幸。在这种情况下,随时编辑我的帖子或添加评论,以便我解决它。