第9章搜索引擎•现在网上搜索引擎很常见,很多网站建立了搜索引擎。一些经常用到的、比较大的网络搜索引擎有google,百度等等,在这些搜索引擎网站上,直接输入想查找内容的关键字,可以很快在网络上查到需要的任何信息,它给广大用户的学习和工作带来了很大的方便。下面将讲解实现搜索引擎的一些关键技术。9.1关键技术的实现•要实现一个搜索引擎系统,用到的技术很多,其中最主要的两项关键技术是数据库中模糊搜索的实现和多个关键字查询。9.1.1模糊搜索技术•所谓“模糊搜索”就是根据一个关键字,搜索到相关的资料,这里的“相关”是指资料中有类似这个关键字的字符串。例如:“ASP”这个关键字,只要数据库资料中包含“ASP”这个关键字的都要把它们找出来。模糊搜索的实现其实很简单,只要使用一个SQL语句就可以了,下面看看SQL语句的写法。(具体内容请参照本书)9.1.2多个关键字查询•在网络搜索时,为了查询到比较准确的资料,用户通常会输入多个关键字,并且用空格或者逗号将多个关键字隔开。那么在程序实现过程中,又是如何将这多个关键字分开搜索的呢?这就用到VBScript语言中的几个函数。下面将具体讲解这几个函数。•1.Split()函数•2.UBound()函数•3.Trim()函数•4.Replace()函数9.2通过其他大型搜索网站建立的搜索引擎•在建立自己的个人主页时,很多人都想让自己的网站功能更全面。在此,编者介绍一种搜索引擎。通过该引擎,访问者在自己的主页上就可以方便的使用各大搜索引擎,而无需登录其主页面。•建立该搜索引擎的基本思路如下:使用表单将用户提交的搜索关键字存储在变量中,并提交给ASP脚本处理。利用ASP内建对象Request获取变量中的关键字符,随后用Response对象的Redirect()方法将关键字符转向提交到其他如搜狐、百度等专业搜索引擎中,即可得到搜索结果。•(具体内容请参照本书)9.3一个功能基本完善的搜索引擎•在这一节,主要讲述如何实现一个网上搜索引擎。9.3.1系统简介•该系统要实现的功能包括如下几方面:(具体内容请参照本书)•根据系统要实现的功能,可以将系统具体划分为如下几个模块:网络搜索模块、分类搜索模块、网站信息登记模块、网站信息修改模块、管理员登录模块、管理员对登记网站的管理模块、网站审核模块、分类管理模块和系统退出模块。其中管理员对登记网站的管理模块又可以分为网站修改子模块和网站删除子模块。(具体内容请参照本书)9.3.2数据库设计•从系统结构可以看出,在该搜索引擎中,需要四个数据表,Web数据表、Sort数据表、Admin数据表和Keyword数据表。(具体内容请参照本书)9.3.3系统文件组成•由系统设计结构图可以看出,该系统主要由以下文件组成:(具体内容请参照本书)9.3.4网站搜索模块•当用户访问该系统时,首先接触到的是首页面index.asp。此页面提供了到达五个功能模块的超链接,默认显示为网站搜索模块。另外页面还提供了一个表单form,让用户输入要搜索的关键字。index.asp文件的界面设计如图9-5所示。(具体内容请参照本书)9.3.5分类目录模块•在index.asp页面上单击【分类目录】超链接,就进入分类目录页面dir.asp。分类目录页面分为两部分,上面显示的是网站搜索部分,其代码与界面都与网站搜索模块相同。下面显示的是分类信息。图9-7所示为分类目录界面。•分类目录中首页显示的分类信息包括sort_id=0的分类和sort_id不等于0但show=1的分类,即最上级分类和要求显示在首页上的下级分类。例如,如果把“计算机”作为最上级分类,“计算机”又分为以下三类:软件、硬件和网络。设置这三个分类也显示在首页上,即show=1。这三个分类的下一级分类不在首页上显示,则最终显示的结果就是图9-7。(具体内容请参照本书)9.3.6网站登录模块•在index.asp页面或dir.asp页面上单击【网站登录】超链接,就进入网站登录页面join.asp。网站登录页面也分为两部分:上面为网站搜索部分,下面为网站登录信息输入部分。在信息输入部分,网站联系人可以输入个人网站信息,方便用户搜索。网站登录的设计界面如图9-9所示。(具体内容请参照本书)9.3.7网站修改模块•在index.asp页面或dir.asp页面或join.asp页面上单击【网站修改】超链接,首先进入网站修改登录页面admin.asp。在该页面上输入网站登录时填写的联系人姓名和联系人电子邮箱,单击【登录】按钮即可进入网站修改页面。admin.asp文件的页面设计如图9-12所示。(具体内容请参照本书)9.3.8管理员登录模块•在前面四个模块的页面右下方,有一个小图片。如图9-14所示。(具体内容请参照本书)9.3.9网站管理模块•管理员登录之后,首先进入的就是网站管理模块main.asp。在该模块管理员能够对已审核的网站进行修改和删除操作。网站管理模块的界面如图9-16所示。(具体内容请参照本书)•1.网站修改•2.网站删除9.3.10网站审核模块•网站审核模块与网站管理模块非常相似。不同的地方在于,网站审核模块显示的所有网站均为未审核网站,而网站管理模块显示的是已审核网站。网站审核模块查询数据库的代码如下:•setrs=server.createobject(adodb.recordset)'创建RecordSet对象•'从数据库中查询verify=-1的记录,按照id降序排列,并保存在rs中•rs.openselectid,sort_id,title,url,verify,click,timefromwebwhere_•verify=-1orderbyiddesc,conn,1,1•这里将不再具体讲述网站审核模块的实现。9.3.11分类管理模块•在网站管理界面或网站审核界面上,有一个【分类管理】超链接,单击该超链接,就进入了分类管理界面sort_manage.asp。在该界面,管理员能够添加、修改和删除各个分类。•进入界面时,程序首先从数据库中查询最上层分类。代码如下:(具体内容请参照本书)•1.分类添加•2.分类编辑•3.分类删除9.3.12退出系统模块•在网站管理界面或分类管理界面,都有一个【退出系统】超链接,单击该超链接,将退出系统。退出系统的操作包括以下内容:•将Seesion(admin)设置为空。•将网页转到index.asp用户登录文件。•(具体内容请参照本书)9.4本章小结•在本章,讲述了实现一个搜索引擎用到的关键技术,并在9.2节和9.3节用两种方法实现了两个搜索引擎。这两个搜索引擎虽然相对比较简单,但是已经涉及到了当今网上搜索引擎的大部分技术。