Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何处理MS SQL 2008 FTS中的撇号(';)?_Asp.net_Sql Server_Full Text Search - Fatal编程技术网

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

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()); 它将由你

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

另外,理想情况下,搜索that's也应该返回that和that,等等

有人知道FTS是否支持这一点,我能做些什么来实现它吗

WT

使用参数

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'