SQL Server 2008上的FullText Search实现问题

时间:2011-05-26 03:25:21

标签: database sql-server-2008 full-text-search

我有以下存储过程,

CREATE Procedure sp_SearchDB (
  @SearchWord nvarchar(200)
)

SET @SearchWord = '"*' + @SearchWord + '*"'

 Select * 
   from Table1
  Where Contains(Description, @SearchWord)

当我搜索“SQL Server”时,它会返回带有“SQL”或“Server”的结果,但它不会返回带有“SQLServer”的数据(如果没有空格),同样如果给出searchword = SQLServer,它不会返回“SQL Server”(带空格)。如何获得结果“SQL Server”和“SQLServer”?

2 个答案:

答案 0 :(得分:0)

您需要执行以下过程:

EXEC sp_SearchDB N'SQL SERVER'

答案 1 :(得分:0)

坏消息,你可以做到,但它会给你一些误报。尝试:

EXEC sp_SearchDB N'SQL'

如果你关心误报,答案是:没有办法做到这一点。如果你想要“SQL Server”和“SQLServer”,你应该这样做:

Select * from Table1 Where Contains(Description, '"SQL Server" OR "SQLServer"').

您可以编写一个代码,始终尝试将两个单词一起查找并分开。如果您的客户搜索:

baby sitter

您的代码会在找到空格时创建此变体:

'"baby sitter" or "babysitter"' 

我希望你明白。