作者:ASP精品屋 探索者
事件起因:
好几个月前,我制作的某个网站觉得有必要采用全文索引擎,简单地自己的电脑上测试了一下全文索引,搜索一些英文字符没有问题,但搜索中文时就出现“查询子句只包含被忽略的词”的错误,任何中文都是如此。由于此网站不是很急,也就过去了。近几天,我原来制作好的一个网站需要转移,它使用了全文索引。突然发现新的专业服务器不能搜索中文,由于事情很急,我必须是几天内解决此问题。
错误信息:
服务器: 消息 7619,级别 16,状态 1,行 2
查询子句只包含被忽略的词。
错误疑点:
全文索引在原来的服务器上运行一切正常,新的服务器则在搜索中文时出现上述错误。经过比较,我发现除了硬件条件不一样外,其它的运行环境都相同:
1.
操作系统均采用Win2000 Server + SP2 简体中文版
2. 数据库均采用Microsoft SQL Server 2000 + SP1 简体中文版
3. SQL数据库安装时均采用默认设置,其中默认的排序方式为Chinese_RPC
4. 数据完全一致,我通过直接附加.mdf数据库和导入数据功能,移植网站均不能正常进行中文全文检索
5. 数据库的各种排序方式均一样,使用的全文索引语言都是“中文(中国)”,代号兼为2052
以上的相同点构成了他们在软件上完全的一致性,但为何会出现移植后的网站不能运行呢?
解决过程:
首先,还是自己来试试各种可能的方法吧
在两天时间里,我用了以下各种不同的方法。
1. 删除移植目标服务器上的全部全文索引,然后重做。我发现在重做索引时所花的时间让我不敢相信的短,虽然硬件性能可能有上倍的提高,但全文索引大部分是靠硬盘的性能,竟然只花了一个上午就完成了(原先的重建全文索引需要3 天3夜)。
2. 我试着将所有的“单词段字符的语言”改为Neutral,既无语言状态,中文总算可以搜索了,但这很让人失望,它将所有没用符号隔开的字母和中文作为一个字儿来看待(比如有一句话“This中dk要我的在顺楞”,只有用搜索词“This 中dk要我的在顺楞”才能检索到,单用“this”或“顺”等字符连个影儿都找不着,这当然不是我的目的)。
3. 后来我将数据库排序方式改为Chinese_PRC_bin,结果更糟,原来的数据库根本不适合这种方式。
4. 使用数据库附加和导入方式重建数据库,仍未能成功
5. 看来只能重装SQL Server软件来试试了。但安装完成后仍不能运行。后来我怀疑是不是跟安装了新版的SP1有关,经测试,与此无关。