如何处理MS SQL 2008 FTS中的撇号(')?

时间:2009-06-26 09:14:58

标签: asp.net sql-server full-text-search

我有一个使用MS SQL 2008的FTS(全文搜索)的网站。如果用户搜索带有这样的撇号的字符串,则搜索工作正常 - 它返回包含的任何结果。但是,如果用户搜索那些,它将不会返回结果,并且数据库存储

另外,理想情况下搜索那个也应该返回那个那个等。

有人知道FTS是否支持这个,以及我可以做些什么来启用它?

WT

1 个答案:

答案 0 :(得分:1)

使用参数

myCommand.Parameters.AddWithValue("@searchterm", txtSearch.Text.Trim());

它将由您处理,没有任何麻烦。

关于那个,那就是你应该查找SOUNDEX个关键字。 4GuysfromRolla也有一个old article

<强>更新 TFS小组成员之一就此here进行了精彩的讨论。

引用他:

  

Daniel是正确的全文搜索(FTS)不直接使用SOUNDEX,   但它可以与SOUNDEX结合使用。
另外,你可以   想要查看以下链接以及下面的TSQL   结合 CONTAINS &amp;的示例 SOUNDEX

你可能想看一下   一些改进的soundex算法以及    Levenshtein距离算法
你   应该能够搜索Google以查找更多代码示例,例如:   'METAPHONE soundex“sql server”模糊名称搜索“,我很快发现 -   http://www.winnetmag.com/Article/ArticleID/26094/26094.html上的“双重Metaphone听起来很棒”   您可以在zip文件中自由下载代码,该文件具有多个实现Double Metaphone的用户定义函数(UDF)。

以下   是一些额外的SOUNDEX链接:
  http://www.merriampark.com/ld.htm
  http://www.bcs-mt.org.uk/nala_006.htm

(在scoop中省略)

use pubs     

-- Combined SOUNDEX OR CONTAINS query that 
-- Searches for names that sound like "Michael".      
SELECT 
    au_lname, au_fname 
FROM 
    authors -- returns 2 rows      
WHERE 
    contains(au_fname, 'Mich*') or SOUNDEX(au_fname) = 'M240'
  

谢谢,
  约翰
  SQL全文搜索博客
  http://spaces.msn.com/members/jtkane/