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

时间:2010-06-24 20:10:51

标签: sql sql-server sql-server-2005 full-text-search

我有一个asp.net网页,用于使用FTS在我们的数据库中搜索公司名称。他们在搜索框中输入公司名称并提交。

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

搜索:

"The Association of Lefthanded Picklepickers"

喂食为:

"The NEAR Association NEAR of NEAR Lefthanded NEAR Picklepickers"

进入搜索结果网格使用的以下WHERE子句:

WHERE CONTAINS(CompanyName, @Search)

这种方法非常有效,直到噪声词(the,is,and,to等)成为用户搜索的一部分。发生这种情况时,SQL Server不返回任何搜索结果。在上述搜索的情况下,即使数据库中存在具有确切标题的公司,“of”一词也会破坏搜索。

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

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

1 个答案:

答案 0 :(得分:3)

尝试使用此处所述的转换干扰词选项: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