基于asp的搜索引擎开发.docx
- 文档编号:6794999
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:22
- 大小:336.63KB
基于asp的搜索引擎开发.docx
《基于asp的搜索引擎开发.docx》由会员分享,可在线阅读,更多相关《基于asp的搜索引擎开发.docx(22页珍藏版)》请在冰豆网上搜索。
基于asp的搜索引擎开发
基于ASP的搜索引擎的开发
摘要
随着互联网和宽带上网的普及,搜索引擎在中国异军突起,并日益渗透到人们的日常生活中。
在互联网普及之前,人们查阅资料首先想到的是拥有大量书籍资料的图书馆,但是今天很多人都会选择一种更方便、快捷、全面、准确的查阅方式—互联网。
而帮助我们在整个互联网上快速地查找到目标信息的就是越来越被重视的搜索引擎。
本文通过分析国内外搜索引擎的发展现状,提出了一种利用ASP技术实现一个B/S体系结构的搜索引擎系统的方案,以期达到功能强大,操作简单,通用性强,可以满足用户对信息搜索需要的搜索引擎系统。
文中着重论述了该系统的数据流程、功能实现与代码设计、后台管理等,并对相关技术作了详细的介绍。
论文在撰写过程中,力求将理论与系统应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现这些知识与技术在系统中的应用与实现。
关键词:
ASP;模糊查询;关键字;搜索引擎
DevelopmentofSearchEngineBasedonASP
Abstract
WiththepopularizationoftheInternetandsurfingtheNetwithbroadband,searchenginelikesadarkhorseinChina,andpermeatethroughdailylifedaybyday.Beforethis,whenpeopleconsultmaterialsthefirstthoughtisthelibrarythathasalargenumberofbooks.ButnowmoreandmorepeoplewillchooseInternettosearchforinformation.It’smoreconvenient,fast,comprehensiveandaccurateforsearchinginformation.ThesearchenginethathelpsusinthewholeInternettoquicklyidentifytargetinformationisplayedmoreandmoreattentionto.Inordertoachievetheformidablefunction,simplyoperating,strongerversatilityandsatisfytheuserstotheinformationsearchneed,ThispapergivesaplanthatrealizesasystematicschemeofsearchengineofB/SsystemstructurethroughanalyzingthecurrentdevelopmentofsearchengineindomesticandinternationalsystematicwiththetechnologyofASP.Thisthesismainlydescribesthedataprocedureofthissystem,functionalrealizationandcodedesign,back-stagemanagement,etc.emphaticallyinthearticle.Ithasdonemoredetailedintroductiontorelevanttechnology.Thepapermakeseveryefforttousethetheoryandpracticeandcombinetogetherinthecourseofwriting,thecooperationsystemisexplainedfrompracticalapplicationandoperationskillwhileexplainingvariouskindsoftheories,hopetomorefullyreflecttheknowledgeandapplicationinthissystemoftechnologyandrealize.
Keywords:
ASP;fuzzyquery;keyword;searchengine
目录
论文总页数:
21页
1引言1
1.1课题背景1
1.2搜索引擎的发展方向1
2系统开发技术分析2
2.1系统开发环境2
2.2IIS简介2
2.3SQLSERVER2000简介2
2.4ASP简介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服务器的支持,且需要数据库系统来方便的对系统数据进行存储,查询,修改,删除,及时更新系统信息,同时需要一种简单,方便的编程工具可以与数据库进行交互。
鉴于上述需求我选择IIS5.0+SQLServer2000+ASP作为我的开发环境。
2.2IIS简介
系统设计IIS是Internet信息服务(InternetInformationServer)的缩写,它是一种Web服务,主要包括WWW服务器、FTP服务器等,使得在Intranet(局域网)或Internet(因特网)上发布信息成了一件很容易的事。
WWW服务提供维护网站和网页,并回复基于浏览器的请求。
有了WWW服务和它内置的功能,通过Internet信息服务器可以创建各种各样的Internet应用程序,加上其内置的对数据库连接的支持,IIS的功能就更强大。
SQL数据库信息或其他任何符合ODBC的数据库信息都能在Internet/Intranet上灵活应用。
2.3SQLSERVER2000简介
SQLServer2000具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。
它支持EnglishQuery和Microsoft搜索服务等功能,在Web应用程序中包含了用户友好的查询和强大的搜索功能。
同一个数据库引擎可以在不同的平台上使用,SQLServer2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。
SQLServer2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能,同时将管理上千个并发修改数据库的用户的开销减到最小。
SQLServer2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQLServer的过程。
2.4ASP简介
ASP全称为ActiveServerPages,即动态服务器页面,它是一套微软开发的服务器端脚本环境,ASP内含于IIS3.0以上版本中,通过ASP我们可以结合HTML网页、ASP指令建立动态、交互且高效的Web服务器应用程序。
ASP脚本在服务器端解释执行,结果自动生成符合HTML语言的主页去响应用户的请求。
ASP已成为目前应用最广泛的动态网页开发工具,同时应用ASP进行网络化的信息管理系统也逐步得到推广。
ASP本身并不是一种脚本语言,它只是提供了一种使镶嵌在HTML页面中的脚本程序得以运行的环境。
ASP程序其实是以扩展名为.asp的纯文本形式存在于Web服务器上的,可以用任何文本编辑器打开它。
ASP程序中可以包含纯文本、HTML标记以及脚本命令。
用户只需将.asp程序放在Web服务器的虚拟目录下(该目录必须要有可执行权限),就可以通过WWW的方式访问ASP程序了。
3概要设计
3.1需求分析
随着互联网信息的增长,人们对信息资料的查阅已不满足现有的书籍资料,网上搜索信息资料扮演着越来越重要的角色。
本系统模块设计目标是采用后台数据信息录入,前台动态页面查找的方式来实现对信息的搜索。
本系统充分考虑了系统的可扩展性和搜索引擎特有的查询流程,利用ASP基本知识以及MicrosoftSQLServer2000的基本操作,使它具有良好的稳定性并且便于维护。
3.2数据库设计
数据库结构设计几乎所有的WEB项目都要基于数据库,这使得数据库的设计在整个项目中举足轻重。
本搜索系统中大部分前台的显示信息都是从数据库中读取所需信息,而系统管理员则只需在后台通过修改数据库中的数据即可达到改变前台显示内容的目的,所以数据库在本系统中作为中间介质连接前台和后台,其重要性不言而喻。
本设计根据系统需求分析,选用SQLServer2000作为该系统的数据库。
数据库取名为database,其中包含了系统中所有的数据。
下面对一些关键表作详细说明。
3.2.1分类目录数据库表
分类目录数据库表在数据库中标记的是Sort数据表,它记录的是子类信息,包括子类名称、父类ID和是否在首页显示。
Sort表的具体结构如表1所示:
表1sort表
字段名称
数据类型
说明
主关键字
ID
int
编号
*
Sort
varchar
子类名称
Sort-ID
int
父类ID
Show
int
是否在首页显示
3.2.2网站登录信息数据库
网站登录数据信息数据库在数据库中标记的是Web数据表,它记录的是网站名称、网站内容简介、网站地址、是否审核、网站关键字、联系人姓名、联系人E-mail、联系人qq号码、联系人地址、联系人邮政编码、网站登录时间、网站访问次数、所属子类名称、子类路径和所属子类ID。
Web表的具体结构如表2所示:
表2web表
字段名称
数据类型
说明
主关键字
ID
int
编号
*
Title
varchar
网站名称
Content
varchar
网站内容简介
URL
varchar
网站地址
Verify
char
管理员是否已经确认
Keyword
varchar
网站关键字
Name
varchar
联系人姓名
varchar
联系人E-mail
varchar
联系人qq
Address
varchar
联系人地址
PostCode
varchar
联系人邮政编码
Time
datetime
网站登录时间
Click
int
网站访问次数
Sort
varchar
子类名称
Sort_path
varchar
子类路径
Sort_ID
int
子类ID
3.2.3管理员数据库表
管理员数据表即:
数据表Admin,记录的是管理员的登录名和密码。
具体结构如表3所示:
表3Admin表
字段名称
数据类型
说明
主关键字
ID
int
编号
*
UserName
varchar
管理员登录名
Password
varchar
管理员密码
3.2.4关键字记录数据库表
关键字记录表即Keyword数据表,记录关键字信息,包括关键字和输入次数,具体结构如表4所示:
表4Keyword表
字段名称
数据类型
说明
主关键字
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语句:
ifpath=""orsort_path="/0/"then
search_sql="verify=0and("&sql&")orderbyclickdesc"
else
search_sql="sort_pathlike'%"&sort_path&"%'andverify=0and("&sql&")orderbyclickdesc"
endif
rs.open
"selectid,sort_path,sort_id,title,keyword,url,content,address,postcode,verify,clickfromwebwhere"&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'要在网页上显示的逐级分类,如计算机>>软件>>编程语言
ifsort_id<>0then'sort_id<>0表示该类存在上级分类
fori=1to8'8表示在本系统中分类只有8级
setrs=conn.execute("select*fromsortwhereid="&sort_id)
ifrs.eofandrs.bofthen
else
sort=rs("sort")
locality=">>
sort_id="&sort_id&">"&sort&""&locality sort_id=rs("sort_id")'上一层分类的id endif rs.close setrs=nothing next endif 若该分类还存在下级分类,将显示下级分类,最后显示属于这一分类的所有网站信息,在显示网站信息的代码中,用到了两个过程: showcontent()过程和showpage()过程。 Showcontent()过程显示所有满足条件的记录。 Showpage()过程显示页数信息,包括当前页、总页数等,其中过程showpage()的处理代码如下: Functionshowpage(totalnumber,maxperpage,filename)'定义过程 Dimn IftotalnumberModmaxperpage=0Then'totalnumber能够整除maxperpage n=totalnumber\maxperpage Else'totalnumber不能够整除maxperpage n=totalnumber\maxperpage+1 EndIf IfCurrentPage<2Then'当前页是第一页 %> 第一页上一页 <% Else'当前页不是第一页 %> sort_id=<%=rqid%>&page=1">第一页 sort_id=<%=rqid%>&page=<%=CurrentPage-1%>">上一页 <% EndIf Ifn-currentpage<1Then'总页数小于或等于当前页 %> 下一页最后一页 <% Else'总页数大于当前页 …… EndIf %> 共<%=totalnumber%>个网站页次: <%=CurrentPage%>/<%=n%>页 4.3网站登录模块的实现 4.3.1功能描述 网站登录页面为jion.asp,在网站登录模块,包含一个表单,用于网站联系人输入网站和个人信息,在表单中,包含输入网站信息的文本域。 其中。 显示分类目录的文本域为sort_id,它为只读类型,只能单击文本域右边的“选择分类”按钮来输入,当网站联系人
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 asp 搜索引擎 开发