日期:2014-05-19  浏览次数:20706 次

200分,真正的挑战 - SQL Server在Windows 2003 Server系统下使用全文检索的问题
首先声明,由于数据库版人气实在太差,不得以只好来这儿寻答案,请版本手下留情。

问题描述:
环境:Windows2003+SQL2000(SP3)
现象:全文索引使用CONTAINS检索时部分内容检索不到,但使用like检索正常

示例:
字段值:它将伞骨增加一批,制成风扇形伞
检索词:风扇--无结果
检索词:成风--有结果

结论:SQL在做索引时把 "成风 "分成了词,但这样明显错误,想关闭SQL的中文分词功能,不知道哪位DX有过这方面的经验

另外请注意,尝试在SQL表中手动一个字一个字地输入上面字段值的那一句话,经过填充,可以检索到   "风扇 ",这一点很奇怪

--------------------------------------------------

在Windows2000+SQL2000(SP3)的机器上未出现所述现象,此环境应该是完全按字索引,可以正常查询到 "风扇 "的检索结果

-----------------------------------------------

已经试过W2K3+SQL2K+SP3/W2K3+SQL2005+SP2,也出现的同样的问题,

初步确定是W2K3的问题

看到以前也有过这样一个贴子,只是没有看到最终解决方案,链接拿来供大家参考
http://topic.csdn.net/t/20050927/16/4297538.html



------解决方案--------------------
关注之中,帮你顶一下
------解决方案--------------------
呵呵,我也帮顶一下,没有研究过这个问题,关注一下
------解决方案--------------------
占个位置
------解决方案--------------------
打一下Win2k3Sp1试试!
------解决方案--------------------
帮你顶一下,现在的系统的确做得很烂,所以补丁不断
SqlServer2000也打到SP4,一次做项目,DTS包用c#来编写,结果TASK始终无法转换,打了sp4就OK了
还有一次EXCEL,更为奇怪,在Excel中编写了一个宏,供外部调用,当Excel中Range中的行正好在11-15行的时候,宏就运行死了,然后下载补丁,打到最新也OK了。
唉...

------解决方案--------------------
抢个位置顶下
------解决方案--------------------
顶一下
------解决方案--------------------
请检查数据库的字符编码问题...
如果是英文的编码,中文数据是查不到的.
------解决方案--------------------
关注,帮顶了
------解决方案--------------------
在XP 帮你测试下... 我只有XP
------解决方案--------------------
好象很有挑战哦 关注
------解决方案--------------------
顶,共同学习
------解决方案--------------------
D下
------解决方案--------------------
这个好像是win的bug,就像是记事本一样,他只是按位置的形式搜索,比如你搜索“风扇”他搜索的位置顺序应该是这样的,12,34,这样下去的,所以就会出现这样的结果
------解决方案--------------------
帮忙顶,沉到下面来了
------解决方案--------------------
MS的分词肯定不是最好的,但是相信在设置中应该有关闭分词的功能,期待高手出现

另外,我觉得放在数据库版面中,换个标题,比如“如何关闭全文检索的中文分词功能”之类的,可能能解决的人会看到
------解决方案--------------------
关注,帮顶了
------解决方案--------------------
关注一下
------解决方案--------------------
关注之中,
帮你顶一下
------解决方案--------------------
关注
------解决方案--------------------
帮你顶一下,呵呵

------解决方案--------------------
up
------解决方案--------------------
帮顶
------解决方案--------------------