新云:用排除法解决搜索引擎搜不到任何结果,提示本次搜索共找到约 0 条相关记录
-
原创:用排除法解决搜索引擎坏掉不好使搜不到任何结果的问题,提示本次搜索共找到约 0 条相关记录
作者:枫之精英
前言:
最近一直有一个问题困扰着我。我站有一个栏目的搜索引擎出现了问题。无论输入任何关键字都找不到任何信息。提示“本次搜索共找到约 0 条相关记录”。但其他栏目却可以正常搜索。找了找新云论坛的帖子,没有找到解决办法。
但是,花了一个晚上,终于将其搞定。要说的是,新云我以前发过原创的技术帖,但没人回,没人顶,不禁失去了信心。如果今天发的此贴再没人顶,以后不发了。伤心……
解决方法:(想看直接原因的可跳过此段,此段仅给朋友们做思路示范,日后再有问题可以用这个办法解决)
1、解决过程:首先分析。为何就该栏目搜索失败?其他栏目就正常呢?根据判断,我第一次认为是出在搜索引擎本身问题上。因为看到论坛有人说当填加数据超过3000时会出现该问题(其实这不是根本原因),而有的人则是填加到6000数据时出问题。我想,可能是新云官方限制了数据?难道限制到某个数值,就让搜索引擎失效?这个想法其实很可笑。我想官方也不会这么做,但我确实还是用字符查找器找了类似2000,3000,9999之类的相关数值,看是否与Search相关联,后来又分析过Search.asp等关联的一些文件,结果,100%一无所获,因为真理并不在这里。
那么,既然问题不是出在搜索引擎本身。那就是出在数据库上了。理由:用以前的数据库可以在该栏目正常搜索,但换回数据库,该栏目就无法搜索了,找不到任何信息。
判断:确实出在数据库问题上。第一个想法就是软件标题信息里有特殊字符,如英文标点符号“'”、“,”、“.”或“∷”之类,或者是日文。最大的可能性就是日文。因为某些搜索引擎遇到日文标题搜索后就会出问题。要么提示出错。要么无结果。但庞大的数据库如何判断呢?
好在我的数据库该栏目之有一条日文软件标题。用排除法轻松解决。
首先,确定你的栏目类型。是否是一级栏目,还是有子栏目。如果是只是单独的一级栏目,那么你就需要很累了。操作后台依次删除数据来判断究竟是哪条数据导致搜索无效不太可能,庞大的数据库会让你崩溃。那么你就要打开ACCESS数据库来删除了。找到该栏目相关的频道ID(ChannelID)及栏目ID(ClassID)。然后先删除该栏目一半儿的数据。保存退出。进入该栏目搜索页,看搜索结果是否能正常。——如果不正常,继续删除。直到正常了,记住你刚删除的那排数据,然后再用排除法,对该区域数据进行删除(你依然可以一次删除该区域数据的一半甚至更多来测试)。最后你可以100%确定下来到底是哪条数据的标题包含特殊字符导致搜索引擎无效了。更改下标题即可。这回,搜索引擎好使了!
如果,你的栏目有子栏目,这样的话查找问题会比较轻松。你可以挨个子栏目删除,删除一个,就在坏掉的搜索引擎里搜索,看能否恢复正常。直到你删除某个栏目发现正常了。那么问题就出在该子栏目的数据里。然后把现在的数据库删除。把备份的数据库恢复回来,进入出问题的子栏目,还是用排除法,一页一页的删除数据,直到删除某页,发现搜索引擎正常了。那么对该页的标题(大概30个)进行查看。看哪条软件或文章标题有特殊字符。更改一下,搜索引擎就好使了。我的数据库就是因为有一条软件标题里包含日文片假名而导致搜索引擎失效。现在终于找到原因能用了。
但是,如果你是采集数据,目标站的数据很多标题都是日文,或者你不定期手工或采集信息,这样的话,数据库会很乱,不连贯,用排除法很难找到原因。(比如你删除了一半的数据,但这一半数据里有一条信息标题仍然包含特殊字符,而剩下的一半数据仍然有特殊字符,这就难办了)
那么如何解决呢?
你需要打开数据库进行替换了。凡是日文全都要替换掉。你需要找到一个日文五十音教程的网站。挨个替换数据库里的字符,把日文的50个字符全都替换为无。也只有这个方法才能解决搜索引擎问题。
所以搜索引擎坏掉的罪魁祸首就是你的标题信息里包含了一些日文。处理掉,搜索引擎就可以恢复了。
抛砖引玉,如果大家有更好的办法可以讨论。希望某些朋友搜索引擎不好使的,依照这个方法能得以解决!
最后,希望大家多发布些技术或文章。新云现在人气太低了也。。
管理员也应该强化一些人性化的东西,比如评论软件信息里加入 顶 踩 中立 这样的投票之类的东西。
新云要完善的地方还有很多,比如后台管理有个直接显示某栏目有新评论这样的快捷提示(甚至象动易那样显示出待审核的评论[条数])我想这样的功能并不难实现,只是需要会ASP编程的人士修改。或者把软件评论做成论坛讨论区模式,可以发贴,回贴。总之新云速度是不错,采集系统比动易好,但功能方便的确应加强。