> 文章列表 > 基于asp的搜索引擎开发和实现

基于asp的搜索引擎开发和实现

基于asp的搜索引擎开发和实现

       随着因特网的迅猛发展、WEB信息的增加,用户要在信息海洋里查找信息,就像大海捞针一样,搜索引擎技术恰好解决了这一难题。目前,搜索引擎系统可以分类三大类,分别是:目录式搜索引擎:以人工方式或半自动方式搜集信息,由编辑员查看信息之后,人工形成信息摘要,并将信息置于事先确定的分类框架中;机器人搜索引擎:由一个称为蜘蛛的机器人程序以某种策略自动地在互联网中搜集和发现信息,由索引器为搜集到的信息建立索引,由检索器根据用户的查询输入检索索引库,并将查询结果返回给用户;元搜索引擎:这类搜索引擎没有自己的数据,而是将用户的查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户。

1.2搜索引擎的发展方向

搜索引擎已成为一个新的研究、开发领域。因为它要用到信息检索、人工智能、计算机网络、分布式处理、数据库、数据挖掘、数字图书馆、自然语言处理等多领域的理论和技术,所以具有综合性和挑战性。又由于搜索引擎有大量的用户,有很好的经济价值,所以引起了世界各国计算机科学界和信息产业界的高度关注,目前的研究、开发十分活跃,并出现了很多值得注意的方向:

1.十分注意提高信息查询结果的精度,提高检索的有效性。用户在搜索引擎上进行信息查询时,并不十分关注返回结果的多少,而是看结果是否和自己的需求吻合。

2.基于智能代理的信息过滤和个性化服务。信息智能代理是另外一种利用互联网信息的机制。它使用自动获得的领域模型(如Web知识、信息处理、与用户兴趣相关的信息资源、领域组织结构)、用户模型(如用户背景、兴趣、行为、风格)知识进行信息搜集、索引、过滤(包括兴趣过滤和不良信息过滤),并自动地将用户感兴趣的、对用户有用的信息提交给用户。

3.采用分布式体系结构提高系统规模和性能。搜索引擎的实现可以采用集中式体系结构和分布式体系结构,两种方法各有千秋。但当系统规模到达一定程度(如网页数达到亿级)时,必然要采用某种分布式方法,以提高系统性能。

4.重视交叉语言检索的研究和开发。交叉语言信息检索是指用户用母语提交查询,搜索引擎在多种语言的数据库中进行信息检索,返回能够回答用户问题的所有语言的文档。如果再加上机器翻译,返回结果可以用母语显示。该技术目前还处于初步研究阶段,主要的困难在于语言之间在表达方式和语义对应上的不确定性。

2系统开发技术分析

通过基于Internet互联网的动态WEB数据库技术,可以解决远程的数据传输与读取,远程的客户终端可以通过WEB页面提交请求,查询远端的数据服务器上的信息,同时还可以向远端数据服务器的数据库中存储信息以实现信息的共享,同时利用Internet技术可以降低软件的开发和部署成本,只要在服务器端安装WEB应用就可以使每个客户端都能浏览使用。

2.1系统开发环境

本搜索引擎系统是一个B/S结构的系统,它的发布需要有WEB服务器的支持,且需要数据库系统来方便的对系统数据进行存储,查询,修改,删除,及时更新系统信息,同时需要一种简单,方便的编程工具可以与数据库进行交互。鉴于上述需求我选择IIS 5.0+SQL Server2000+ASP作为我的开发环境。

2.2 IIS简介

系统设计IIS是Internet信息服务(Internet Information Server)的缩写,它是一种Web服务,主要包括WWW服务器、FTP服务器等,使得在Intranet(局域网)或Internet(因特网)上发布信息成了一件很容易的事。WWW服务提供维护网站和网页,并回复基于浏览器的请求。有了WWW服务和它内置的功能,通过Internet信息服务器可以创建各种各样的Internet应用程序,加上其内置的对数据库连接的支持,IIS的功能就更强大。SQL数据库信息或其他任何符合ODBC的数据库信息都能在Internet/Intranet上灵活应用。

2.3 SQL SERVER 2000简介

SQL Server 2000具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。它支持English Query和Microsoft搜索服务等功能,在Web应用程序中包含了用户友好的查询和强大的搜索功能。同一个数据库引擎可以在不同的平台上使用,SQL Server 2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。SQL Server 2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQL Server的过程。

2.4 ASP简介

ASP全称为Active Server Pages,即动态服务器页面,它是一套微软开发的服务器端脚本环境,ASP内含于IIS 3.0 以上版本中,通过ASP我们可以结合HTML网页、ASP指令建立动态、交互且高效的Web服务器应用程序。ASP脚本在服务器端解释执行,结果自动生成符合HTML语言的主页去响应用户的请求。ASP已成为目前应用最广泛的动态网页开发工具,同时应用ASP进行网络化的信息管理系统也逐步得到推广。ASP本身并不是一种脚本语言,它只是提供了一种使镶嵌在HTML页面中的脚本程序得以运行的环境。ASP程序其实是以扩展名为.asp的纯文本形式存在于Web服务器上的,可以用任何文本编辑器打开它。ASP程序中可以包含纯文本、HTML标记以及脚本命令。用户只需将.asp程序放在Web服务器的虚拟目录下(该目录必须要有可执行权限),就可以通过WWW的方式访问ASP程序了。

3概要设计

3.1需求分析

随着互联网信息的增长,人们对信息资料的查阅已不满足现有的书籍资料,网上搜索信息资料扮演着越来越重要的角色。本系统模块设计目标是采用后台数据信息录入,前台动态页面查找的方式来实现对信息的搜索。本系统充分考虑了系统的可扩展性和搜索引擎特有的查询流程,利用ASP基本知识以及Microsoft SQL Server 2000的基本操作,使它具有良好的稳定性并且便于维护。

3.2数据库设计

数据库结构设计几乎所有的WEB项目都要基于数据库,这使得数据库的设计在整个项目中举足轻重。本搜索系统中大部分前台的显示信息都是从数据库中读取所需信息,而系统管理员则只需在后台通过修改数据库中的数据即可达到改变前台显示内容的目的,所以数据库在本系统中作为中间介质连接前台和后台,其重要性不言而喻。本设计根据系统需求分析,选用SQL Server 2000作为该系统的数据库。数据库取名为database,其中包含了系统中所有的数据。下面对一些关键表作详细说明。

3.2.1分类目录数据库表

分类目录数据库表在数据库中标记的是Sort数据表,它记录的是子类信息,包括子类名称、父类ID和是否在首页显示。Sort表的具体结构如表1所示:

表1 sort表

字段名称

数据类型

说明

主关键字

ID

int

编号

*

Sort

varchar

子类名称

Sort-ID

int

父类ID

Show

int

是否在首页显示

3.2.2网站登录信息数据库

网站登录数据信息数据库在数据库中标记的是Web数据表,它记录的是网站名称、网站内容简介、网站地址、是否审核、网站关键字、联系人姓名、联系人E-mail、联系人qq号码、联系人地址、联系人邮政编码、网站登录时间、网站访问次数、所属子类名称、子类路径和所属子类ID。Web表的具体结构如表2所示:

表2 web表

字段名称

数据类型

说明

主关键字

ID

int

编号

*

Title

varchar

网站名称

Content

varchar

网站内容简介

URL

varchar

网站地址

Verify

char

管理员是否已经确认

Keyword

varchar

网站关键字

Name

varchar

联系人姓名

Email

varchar

联系人E-mail

QQ

varchar

联系人qq

Address

varchar

联系人地址

PostCode

varchar

联系人邮政编码

Time

datetime

网站登录时间

Click

int

网站访问次数

Sort

varchar

子类名称

Sort_path

varchar

子类路径

Sort_ID

int

子类ID

3.2.3管理员数据库表

管理员数据表即:数据表Admin,记录的是管理员的登录名和密码。具体结构如表3所示:

表3 Admin表

字段名称

数据类型

说明

主关键字

ID

int

编号

*

UserName

varchar

管理员登录名

Password

varchar

管理员密码

3.2.4关键字记录数据库表

关键字记录表即Keyword数据表,记录关键字信息,包括关键字和输入次数,具体结构如表4所示:

表4 Keyword表

字段名称

数据类型

说明

主关键字

ID

int

编号

*

keyword

varchar

关键字

hot

int

输入次数

3.3系统设计结构图

系统设计结构如图1所示:

 

系统前台模块设计

4.1网站搜索模块的实现

4.1.1 功能描述

用户访问系统时,首先接触到的是首页面index.asp,它提供了到达5个功能模块的超链接,默认显示为网站搜索模块。另外页面还提供一个表单from,让用户输入要搜索的关键字,当用户输入关键字单击搜索按钮后,表单中的数据将被提交到search.asp文件中处理。在search.asp首先读取传递过来的数据,然后判断该数据是否为空。如果不为空。则将数据分割为多个关键字,然后在数据库中查找匹配的记录,并在页面上显示。

4.1.2 流程图

在网站搜索模块中,数据流程如图2所示:

4.1.3 界面设计

搜索模块的界面设计如图3所示:

4.1.4 工作流程和代码设计

输入关键字后,数据被提交到search.asp中,首先使用Request对象的QueryString()方法读取表单传递过来的关键字,再判断关键字是否为空,若不为空,将多个关键字进行处理后分开保存在一维数组中:

keyword = replace(keyword,"'"," ")      '用空格替换关键词中的字符"'"

keyword = replace(keyword,"["," ")      '用空格替换关键词中的字符"["

keyword = replace(keyword,"]"," ")      '用空格替换关键词中的字符"]"   

keyword = replace(keyword,","," ")  '用空格替换关键词中的中文字符","

keyword = replace(keyword,","," ")          '用空格替换关键词中的英文字符","

keyword=ltrim(rtrim(keyword))               '去掉关键词左边和右边的空格。函数LTrim 去掉字符串左边空格,函数RTrim 去掉字符串右边空格

keywordlist=split(keyword)                 '将用户输入的关键词用空格分成多个关键词并保存在一维数组keywordlist中

然后在循环写出查询的spl语句:

if path="" or sort_path="/0/" then                         

    search_sql="verify=0 and ("&sql&") order by click desc"

else

search_sql="sort_path like '%" & sort_path & "%' and verify=0  and ("&sql&") order by click desc"

    end if

    rs.open

"selectid,sort_path,sort_id,title,keyword,url,content,address,postcode,verify,click from web where "&search_sql,conn,1,1

执行查询。使用html代码显示查询页面的网站搜索部分,然后判断是否存在满足条件的记录,如果存在,则使用showcontent()过程显示满足条件的所有记录,并将记录中的关键字用红色字体显示。然后使用showpage()过程显示记录的页数信息,包括当前页、总页数等。最后显示查询页面的底部的管理入口,并建立到管理员登录的超连接。

4.2 分类目录模块的实现

4.2.1 功能描述

分类目录界面由dir.asp实现,在该页面显示的分类信息包括sort_id=0的分类和sort_id=1的分类,即最上级分类和要求显示在首页上的下级分类。例如,如果把“计算机”作为最上级分类。“计算机”又分为以下3类:软件、硬件和网络。设置这3个分类也显示在首页上,即show=1。这3个分类的下一级分类不在首页上显示。当单击分类目录首页上的某分类时,将进入list.asp文件,在该文件中,将详细显示这一分类及其下级分类,并显示属于这一分类的所有网站信息。

4.2.2 工作流程和代码设计

单击分类目录首页上的某一分类,进入list.asp文件,在该文件中,首先使用Request对象的QueryString()方法读取sort_id的值并在数据库中查找这一分类的所有上级分类,并连接在一起,其逐级显示分类的代码如下:

locality=" >> "&sort        '要在网页上显示的逐级分类,如计算机>>软件>>编程语言

if sort_id<>0 then      'sort_id <> 0 表示该类存在上级分类

    for i=1 to 8           '8表示在本系统中分类只有8级

        set rs=conn.execute("select * from sort where id="&sort_id)

        if rs.eof and rs.bof then

        else

            sort=rs("sort")

            locality=">>

<a href=list.asp?sort_id="&sort_id&">"&sort&"</a>"&locality 

            sort_id=rs("sort_id")       '上一层分类的id

        end if

        rs.close

        set rs = nothing

    next

end if

若该分类还存在下级分类,将显示下级分类,最后显示属于这一分类的所有网站信息,在显示网站信息的代码中,用到了两个过程:showcontent()过程和showpage()过程。Showcontent()过程显示所有满足条件的记录。Showpage()过程显示页数信息,包括当前页、总页数等,其中过程showpage()的处理代码如下:

Function showpage(totalnumber,maxperpage,filename)      '定义过程

    Dim n              

    If totalnumber Mod maxperpage=0 Then    'totalnumber能够整除maxperpage

        n= totalnumber \\ maxperpage 

    Else                                        'totalnumber不能够整除maxperpage

        n= totalnumber \\ maxperpage+1 

    End If

    If CurrentPage<2 Then                   '当前页是第一页

    %>

        第一页 上一页

        <%

    Else                                        '当前页不是第一页

    %> 

 <a href="<%=filename%>?sort_id=<%=rqid%>&page=1">第一页</a> <a href="<%=filename%>?sort_id=<%=rqid%>&page=<%=CurrentPage-1%>">上一页</a>

    <%

    End If

   If n-currentpage<1 Then            '总页数小于或等于当前页

   %>

        下一页 最后一页

    <%

    Else                                       '总页数大于当前页

    ……

 End If

 %>

共<%=totalnumber%>个网站 页次:<%=CurrentPage%>/<%=n%>页

4.3网站登录模块的实现

4.3.1 功能描述

网站登录页面为jion.asp,在网站登录模块,包含一个表单,用于网站联系人输入网站和个人信息,在表单中,包含输入网站信息的文本域。其中。显示分类目录的文本域为sort_id,它为只读类型,只能单击文本域右边的“选择分类”按钮来输入,当网站联系人输入所有的信息,并单击“确定”按钮,然后判断用户输入的分类目录是否存在,如果存在,则生成输入网站的最终分类目录。接着再判断用户输入的网站网址是否已经保存在数据库中,如果没有保存在数据库中,则在数据库中插入一条新的记录。如果数据库中已经存在该网址,则给出提示,并返回到前一页,当所有的数据保存在数据库中之后,页面上显示网站登录成功的提示。

4.3.2 数据流程图

网站登录的数据流程图如图4:

4.3.3 工作流程

当网站联系人输入所有的信息提交后,表单中的数据首先在check()过程中检查其合法性。如果合法,数据将被提交到join_ok.asp文件中处理,在该文件中将使用Request对象的From()方法获取网站登录数据,然后判断用户输入的分类目录是否存在,如果存在,则生成输入网站的最终分类目录,接着再判断用户输入的网站网址是否已经保存在数据库中,如果没有保存在数据库中,则在数据库中插入一条新的记录:

rs.addnew                                               '插入新记录

    rs("sort")=path                                     '子类名称

    rs("sort_path")=path_id                             '子类id 路径

    rs("sort_id")=sort_id                               '父类id

    rs("title")=request.form("title")                   '网站名称

    rs("url")=request.form("url")                       '网站网址

    rs("keyword")=request.form("keyword")               '关键字

    rs("content")=request.form("content")               '网站描述

    rs("name")=request.form("name")                     '联系人姓名

    rs("email")=request.form("email")                   '联系人email

    if oicq="" then                                     'qq为空

        rs("oicq")=null

    else

        rs("oicq")=oicq                                 'qq

    end if

    rs("address")=request.form("address")               '联系人地址

    rs("postcode")=request.form("postcode")         '邮政编码

    rs("verify")="-1"                                      '-1表示为审查

    rs("click")="0"                                     '点击次数

    rs("time")=date()                                       '登录时间

    rs.update                                               '更数数据库

    rs.close                                        '关闭RecordSet 对象

end if

set rs=nothing

如果数据库中已经存在该网址,则给出提示,并返回到前一页。当所有的数据保存到数据库中后,页面上将显示登录成功的提示。

4.4 网站修改模块

4.4.1 功能描述

网站修改页面为admin.asp。在网站修改页面上,包含两个表单。一张表单用来输入网站搜索的关键字,实现的功能与网站搜索模块一样。另一张表单是网站联系人登录时输入姓名和电子邮箱,在该表单中,输入联系人的姓名的文本域为name,输入联系人电子邮箱的文本域为email。当网站联系人输入姓名和电子邮箱,单击“登录”按钮后,表单的数据将被提交到login.asp文件中处理,当网站联系人输入修改的信息。并单击“确定”按钮后,所有的数据提交到join_edit_ok.asp文件中,该文件将所有的数据保存在数据库中。并在页面上显示网站修改成功的信息。

4.4.2 工作流程图

网站修改的工作流程如图5所示:

4.4.3 界面设计

在首页页面或者分类目录页面或登录页面上单击“网站修改”超连接,首先进入网站修改登录页面,在该页面上输入网站登录时填写的联系人姓名和联系人电子邮件。单击“登录”按钮既可进入网站修改页面。网站修改页面也分两部分:上面为网站搜索部分,下面为网站信息修改部分。在信息修改部分,网站联系人可以修改输入的网站信息。网站修改的设计界面如图6所示:

 

4.4.4 工作流程和代码设计

在表单中输入联系人名称以及邮箱后,数据被提交到login.asp文件中处理,在login.asp中首先使用QueryString()方法读取action的值,如果action的值为login,则读取表单传递过来的联系人姓名和电子邮箱数据,并判断联系人姓名和电子邮箱是否为空:

 if name=""  then                                        

response.write "<Script>window.alert('联系人不能空');_

history.back();</Script>"

  else

if email="" then                                   

response.write"<Script>window.alert('电子邮箱不能为空 ');_

history.back();</Script>"

如果二者都不为空,则从数据库中查询email列的值为输入电子邮箱的记录。如果存在记录,则判断输入的用户名是否正确,如果不正确,返回到登录页面。如果全部正确,则登录成功,保存联系人登录的电子邮箱和id,并将页面转到jion_edit_ok.asp修改页面。进行网站登录信息的修改。

5系统后台模块设计

5.1 网站管理模块的实现

前台页面可以看成是对数据库中表的查询,读入,而后台则是对数据库表中的信息进行修改,添加,删除,从而改变前台的显示信息。后台由管理员通过管理员id和密码登录进行操作。

5.1.1 功能描述

管理员登录之后,首先进入的就是网站管理模块,该模块管理员能够对已审核的网站进行修改和删除操作。网站管理模块的界面如图7:

5.1.2 工作流程和代码设计

进入该界面时,程序首先从数据库中查询verify=0的记录,然后将所有的记录分页显示在页面上。当管理员单击某个网站对应的“删除”超连接,就可以将该网站及其所有信息从数据库中删除。执行删除文件的部分代码如下:

if session("admin")="" then

    response.write"<Script>window.alert('你目前还没登录,请先登录!');_

location.replace('index.asp');</Script>"

end if

If Request("action")="delete" Then

    delid=replace(request("id"),",","")                 '获得要删除记录的id,Replace 过程将获得的id 字符串中的"'"用空字符""替换

    if delid="" or isnull(delid) then                       '要删除的记录id 为空

        '则给出提示

        response.write "<script>alert('操作失败,没有选择合适参数,请单击确定返回!');</script>"       

        response.redirect "main.asp"                        '返回到网站管理界面

        response.end

    else                                        'id 存在

        '执行数据库中的删除操作,删除数据库中id 列的值在delid数组中的记录

        conn.Execute("delete * from web where ID in ("&delid&")")

        '删除成功,给出提示

        response.write "<script>alert('留言删除成功,请单击确定返回!');</script>"     

        response.redirect "main.asp"

5.2 网站审核

网站审核模块与网站管理模块非常相似。不同的地方在于,网站审核模块显示的所有网站均为未审核网站,已经审核了的网站将不会在此页面显示。而网站管理模块显示的是已审核网站,网站审核模块查询数据库的代码如下:

Set rs=server,createobject(“adodb.recordset”)

rs.open”select id,sort_id,title.url.verify.click.time.from web where verify=-1 order by id desc”.conn,1,1

5.3 分类管理模块

5.3.1 分类编辑

在分类显示界面的每个分类的下面,对应着一个“编辑”超连接,单击该超连接,进入该分类的编辑界面,分类编辑界面和分类添加界面相同,二者的界面是由同一个文件生成,进入某一分类的界面,则在界面上显示该分类保存在数据库中的信息。当用户输入修改后的信息,单击确定按扭,所有的数据将被提交到sort_ok.asp文件中处理,部分处理代码如下:

   case "edit"                            'action 的值为edit

    show=request.form("show")               '是否首页显示

    sort_id=request.form("sort_id")         '上级ID

    set rs=server.createobject("adodb.recordset")   '创建RecordSet 对象

    '从数据库中查询id 列的值为request.form("id")的记录,将结果保存在rs 中

    rs.open "select * from sort where id="&request.form("id"),conn,1,3

    rs("sort")=request.form("sort")         '分类名称

    ………

    rs.update                                 '更新数据库

    rs.close                                  '关闭RecordSet 对象

    if sort_id="0" then                    '判断sort_id 的值,并根据sort_id 的值返回到不同的界面

        response.write "<Script>window.alert('分类修改成功');location.replace('sort_manage.asp');</Script>"

    else

        response.write "<Script>window.alert('分类修改成功');location.replace('sort.asp?sort_id="&sort_id&"');</Script>"

    end If

5.3.2 分类添加

在分类显示界面的最下方,有一个“添加分类”超连接。单击该超连接,能够添加当前分类的下一层分类。界面中包含表单forms,用来输入要添加的分类信息。表单中定义的分类名称文本域为sort。首页显示为一个下拉列表show。可以选择是否要在首页显示,默认为否,上级id文本域为sort_id。操作文本域为action。它为只读型,当操作为添加时,文本域中显示“add”。表单中还定义了一个隐藏域id,用来保存当前分类的id。其页面显示如图8所示:

当输入要添加的分类信息并单击“确定”按钮后,表单中的数据被提交到sort_ok.asp文件中处理。在sort_ok.asp文件中,首先判断用户是否登录,如果登录,则读取操作action的值,如果action的值为add,则执行添加处理。分类添加的部分代码如下:

action = request("action")h                '读取action 的值

select case action                         'select条件语句

case "add"                                'action 的值为add

    show=request.form("show")              '是否首页显示

    sort_id=request.form("sort_id")         '上级ID

    set rs=server.createobject("adodb.recordset")   '创建RecordSet 对象

    '从数据库中查询id 为空的记录,将结果保存在rs 中

    rs.open "select * from sort where id is null",conn,1,3

    rs.addnew                                '添加新记录

    rs("sort")=request.form("sort")         '分类名称

    if show="" then         '首页显示,0为首页不显示,1为首页显示

        rs("show")="0"

    else

        rs("show")=show

    end If

    if sort_id="" then      '上级ID的值,为空表示最上层分类

        rs("sort_id")="0"

    else

        rs("sort_id")=sort_id

    end If  rs("sort_id")=sort_id

    end If

    rs.update                                 '更新数据库

    rs.close                                  '关闭RecordSet 对象

    Set rs=nothing

    if sort_id="" or sort_id = "0" then     '判断sort_id 的值,并根据sort_id 的值返回到不同的界面

response.write"<Script>window.alert('分类添加成功');_

location.replace('sort_manage.asp');</Script>"

    else

        response.write "<Script>window.alert(‘分类添加成功');_

location.replace('sort.asp?sort_id="&sort_id&"');</Script>"

    end If

5.3.3 分类删除

删除操作也是在sort_ok.asp文件中执行的。在sort_ok.asp文件中,如果读取action的值为delete,则执行删除操作,在代码中,首先读取id和sort_id的值,然后执行del()过程将所有相关分类删除,最后根据sort_id的值将页面转到相关页。其中del()过程是一个递归过程,其基本思想是:首先判断该分类是否是最下级分类,如果是,则直接删除改分类,完成操作。如果不是最下级分类,则查询该分类的下级分类,对每一下级分类,执行与该分类同样的操作,即首先根据情况处理。最后直到所有的下级分类以及下级分类的下级分类等都删除掉,然后再将该分类删除。del()的具体代码如下:

  Function Del(sort_id,id)            

    Set drs = Server.CreateObject("ADODB.RecordSet")   

    drs.Open "Select * from sort where sort_id="&id,conn,1,3

    If drs.EOF or drs.BOF Then  '不存在满足条件的记录,即该分类是最下级分类

conn.Execute("delete * from sort where ID="&id)     '删除该分类

        Exit Function                               '跳出Function 过程

    Else                                            '还存在下级分类

        Do While Not drs.EOF                '循环处理每一个下级分类

            nid = drs("id")                 '下级分类的id

            Del id,nid                         '删除该下级分类

            drs.MoveNext                       '指向下一条记录

        Loop

    End If

    drs.Close                                  '关闭RecordSet 对象

    Set drs = nothing                  

    conn.Execute("delete * from sort where id="&id)  '删除该分类

End Function

6系统性能测试

6.1 系统测试环境

本系统测试环境:CPU PⅢ,内存SDRAM 128M,SQL SERVER 2000,WIN2000/XP,2003下均测试通过。建议用户CPU PⅣ,内存256M及以上,数据库版本SQL SERVER 2000,WIN2000PRO/XP、2003,WIN2000 SERVER及以上软硬件平台使用。

6.2 测试结果

在系统的各个模块设计完成之后,需要对整个系统进行全面的测试。目的是让整个系统能够快速、稳定、安全的运行。在进行系统测试过程中会出现如下几种情况:

(1)及时的捕捉数据库连接和关闭异常。

(2)对数据库查询操作异常进行捕捉。

(3)对数据库插入操作异常进行捕捉。

(4)对数据库更新操作异常进行捕捉。

(5)对数据库添加操作异常进行捕捉。

(6)对数据库删除操作异常进行捕捉。

结    论

本文通过对搜索引擎的认识和发展现状的分析,从理论联系实际,完成了基于ASP的搜索引擎的开发,系统主要实现了用户对信息的检索。以及给定关键字,根据关键字所属的分类来细分,最后再查找到相关的信息,同时,系统还提供了网站登录,在网站登录模块,登录的用户需要输入登录网站名称、关键字、选择网站所属的分类、最后输入登录者的个人信息。在网站修改模块,输入登录时填写的用户名和邮箱。登录成功后,对输入的网站信息进行修改。唯一不足的是:信息的搜索能力的大小取决于网站登录录入数据的多少。