当搜索字符串中有任何干扰词时,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
这工作,但它广泛变换噪音词服务器? – David 2010-06-24 21:47:54
是的,这是一个服务器范围的设置。 – 2010-06-25 15:39:18