微软 sql server 2005 全文检索的BUG (2008-7-31 16:36:46)
分类:电脑技术 标签:sqlserver|
微软 sql server 2005 的全文检索功能有问题,对于一些特殊的汉字,会产生填
充不完全或者错误填充的情况,但微软不说这是一个BUG,只说这是微软底层开发的分
词填充技术上的一些不足所引起的.
这个BUG导致的性状是 select * from tabname where contains (*,
'孙海斌')这类由一个"文"及一个"武" 等单独的汉字组成的合体汉字,出现填充不到
位的情况..执行以上语句会出现查询不到这个人的情况...咨询了微软的技术支持他
们说在 2005 中不会解决这个问题.但他们提供了一套替代的方案,就是用 2000 中的全
文填充功能替换 2005 中的功能.这样可以取得比较好的效果,于是.我按照微软提供的
替换功能操作,等全文填充完毕后,使用这条语句查询"孙海斌"这个人,只查出了一条记
录,但我使用select * from tabname where username like '%孙海斌%'却
出现了 200 多个这条记录.晕..暮是微软的这个替换方案有问题...于是继续咨询微
软..他们说...你的 username 字段是 varchar 字段,如果要使全文填充正常的话,
必须得改成 nvarchar...晕....这下我彻底晕了..没办法啊....一个字段的类
型修改,那可不果了命了...涉及到多少代码的修改啊.而且业务多年的积累有很多功
能,没准保证哪天不出问题..晕....
下面我就提供一下微软的解决方案吧.各位,可以一试.但.最终出不出问题..我
不敢保证,只这毕竟是微软提供的一个解决方案了..
尊敬的X先生: