当搜索字符串中有任何干扰词时,SQL全文搜索不会返回任何结果

问题描述:

我有一个asp.net网页,用于使用FTS在我们的数据库中搜索公司名称。他们在搜索框中输入公司名称并提交。当搜索字符串中有任何干扰词时,SQL全文搜索不会返回任何结果

首先我修剪任何前导或尾随空格,然后用“NEAR”替换每个内部空间。

所以对于一个搜索:

"The Association of Lefthanded Picklepickers" 

送入为:

"The NEAR Association NEAR of NEAR Lefthanded NEAR Picklepickers" 

成以下,其中由搜索结果网格使用条款:

WHERE CONTAINS(CompanyName, @Search) 

此方法效果很好直到一个噪音词(即,是,等等)是用户搜索的一部分。发生这种情况时,SQL Server不返回任何搜索结果。在上述搜索的情况下,即使数据库中存在具有确切标题的公司,“of”字也会中断搜索。

我该怎么做才能解决这个问题?

您的想法和建议非常感谢!

尝试使用如这里所描述的变换噪音词的选择:http://technet.microsoft.com/en-us/library/ms187914(SQL.90).aspx

sp_configure 'show advanced options', 1 
RECONFIGURE 
GO 
sp_configure 'transform noise words', 1 
RECONFIGURE 
GO 
+0

这工作,但它广泛变换噪音词服务器? – David 2010-06-24 21:47:54

+0

是的,这是一个服务器范围的设置。 – 2010-06-25 15:39:18