基于asp的搜索引擎开发

基于asp的搜索引擎开发[java毕业论文下载]

基于ASP的搜索引擎的开发

摘  要

随着互联网和宽带上网的普及,搜索引擎在中国异军突起,并日益渗透到人们的日常生活中。在互联网普及之前,人们查阅资料首先想到的是拥有大量书籍资料的图书馆,但是今天很多人都会选择一种更方便、快捷、全面、准确的查阅方式—互联网。而帮助我们在整个互联网上快速地查找到目标信息的就是越来越被重视的搜索引擎。本文通过分析国内外搜索引擎的发展现状,提出了一种利用ASP技术实现一个B/S体系结构的搜索引擎系统的方案,以期达到功能强大,操作简单,通用性强,可以满足用户对信息搜索需要的搜索引擎系统。文中着重论述了该系统的数据流程、功能实现与代码设计、后台管理等,并对相关技术作了详细的介绍。论文在撰写过程中,力求将理论与系统应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现这些知识与技术在系统中的应用与实现。

 

关键词ASP;模糊查询;关键字;搜索引擎

 

Development of Search Engine Based on ASP

Abstract

With the popularization of the Internet and surfing the Net with broadband, search engine likes a dark horse in China, and permeate through daily life day by day. Before this, when people consult materials the first thought is the library that has a large number of books .But now more and more people will choose Internet to search for information .It’s more convenient, fast, comprehensive and accurate for searching information. The search engine that helps us in the whole Internet to quickly identify target information is played more and more attention to. In order to achieve the formidable function, simply operating, stronger versatility and satisfy the users to the information search need ,This paper gives a plan that realizes a systematic scheme of search engine of B/S system structure through analyzing the current development of search engine in domestic and international systematic with the technology of ASP. This thesis mainly describes the data procedure of this system, functional realization and code design, back-stage management, etc. emphatically in the article.  It has done more detailed introduction to relevant technology. The paper makes every effort to use the theory and practice and combine together in the course of writing, the cooperation system is explained from practical application and operation skill while explaining various kinds of theories, hope to more fully reflect the knowledge and application in this system of technology and realize.

 

Key words: ASP; fuzzy query; keyword; search engine

 

目  录

论文总页数:21页

 

1引言 1

1.1课题背景 1

1.2搜索引擎的发展方向 1

2系统开发技术分析 2

2.1系统开发环境 2

2.2 IIS简介 2

2.3 SQL SERVER 2000简介 2

2.4 ASP简介 2

3概要设计 3

3.1需求分析 3

3.2数据库设计 3

3.2.1分类目录数据库表 3

3.2.2网站登录信息数据库 4

3.2.3管理员数据库表 4

3.2.4关键字记录数据库表 5

3.3系统设计结构图 5

4系统前台模块设计 5

4.1网站搜索模块的实现 5

4.1.1 功能描述 5

4.1.2 流程图 6

4.1.3 界面设计 6

4.1.4 工作流程和代码设计 6

4.2 分类目录模块的实现 7

4.2.1 功能描述 7

4.2.2 工作流程和代码设计 8

4.3网站登录模块的实现 9

4.3.1 功能描述 9

4.3.2 数据流程图 9

4.3.3 工作流程 10

4.4 网站修改模块 11

4.4.1 功能描述 11

 

 

4.4.2 工作流程图 11

4.4.3 界面设计 12

4.4.4 工作流程和代码设计 13

5系统后台模块设计 13

5.1 网站管理模块的实现 13

5.1.1 功能描述 13

5.1.2 工作流程和代码设计 14

5.2 网站审核 15

5.3 分类管理模块 15

5.3.1 分类编辑 15

5.3.2 分类添加 16

5.3.3 分类删除 18

6系统性能测试 18

6.1 系统测试环境 18

6.2 测试结果 18

     19

参考文献 19

     20

     21

 

 

1引言

1.1课题背景

随着因特网的迅猛发展、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所示:

 

 

 

图1 系统功能结构图

 

4系统前台模块设计

4.1网站搜索模块的实现

4.1.1 功能描述

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

 

4.1.2 流程图

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

 

图2 网站搜索数据流程图

 

4.1.3 界面设计

搜索模块的界面设计如图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 网站登录数据流程图

 

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所示:

图5 网站修改工作流程图

 

4.4.3 界面设计

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图6 网站修改界面图

基于asp的搜索引擎开发[点击下载]
  • 上一篇:
  • 下一篇:

评论