Asp.net 如何处理MS SQL 2008 FTS中的撇号(';)?
我有一个网站,利用MS SQL 2008的FTS(全文搜索)。如果用户搜索带有撇号的字符串(如),则搜索工作正常-它返回任何包含该撇号的结果。但是,如果用户搜索该结果,并且数据库存储该结果,则不会返回结果 另外,理想情况下,搜索that's也应该返回that和that,等等 有人知道FTS是否支持这一点,我能做些什么来实现它吗 WT使用参数Asp.net 如何处理MS SQL 2008 FTS中的撇号(';)?,asp.net,sql-server,full-text-search,Asp.net,Sql Server,Full Text Search,我有一个网站,利用MS SQL 2008的FTS(全文搜索)。如果用户搜索带有撇号的字符串(如),则搜索工作正常-它返回任何包含该撇号的结果。但是,如果用户搜索该结果,并且数据库存储该结果,则不会返回结果 另外,理想情况下,搜索that's也应该返回that和that,等等 有人知道FTS是否支持这一点,我能做些什么来实现它吗 WT使用参数 myCommand.Parameters.AddWithValue("@searchterm", txtSearch.Text.Trim()); 它将由你
myCommand.Parameters.AddWithValue("@searchterm", txtSearch.Text.Trim());
它将由你处理,没有任何麻烦
关于这一点,你应该查找关键字。对这件事也要有一个明确的认识
已更新
TFS团队的一位成员就此进行了精彩的演讲
引用他的话:
Daniel是正确的全文搜索(FTS)不直接使用SOUNDEX,
但它可以与SOUNDEX结合使用此外,您可以 想要查看以下链接以及下面的TSQL吗 组合的示例包括和SOUNDEX
您可能需要查看 一些改进的soundex算法以及 Levenshtein距离算法 应该能够搜索Google以查找更多代码示例,例如: “METAPHONE soundex”sql server“模糊名称搜索”,我很快找到了- 在
您可以在一个zip文件中自由下载代码,该文件包含多个用户定义函数(UDF),实现双变音
如下 有一些附加的SOUNDEX链接:
(勺外省略) 谢谢,
约翰
SQL全文搜索博客
嗨,谢谢你的链接。我不理解有关参数的部分-我正在使用一个SP,我已经将值传递给它了。这就是你的意思吗?是的。您可能正在使用内联SQL,并且正在为单引号字符而挣扎,但是使用如我所示的参数,所有特殊字符都将正确传递。-添加了更多关于SOUNDEX和FTS的内容-好的,谢谢-我立即能够使用DIFFERENCE解决问题,DIFFERENCE是SOUNDEX的一个变体!明亮的谢谢我还将阅读您发送的链接,以防有什么我应该注意的…SOUNDEX是一个即将发生的i18n灾难。MSalters,那很好-我们只针对一种语言。
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'