欢迎来到天天文库
浏览记录
ID:7781295
大小:511.50 KB
页数:6页
时间:2018-02-25
《c#015基于ajax+lucene构建搜索引擎的设计和实现2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于Ajax+Lucene构建搜索引擎的设计与实现摘要通过搜索引擎从互联网上获取有用信息已经成为人们生活的重要组成部分,Lucene是构建搜索引擎的其中一种方式。搜索引擎系统是在.Net平台上用C#开发的,数据库是MSSQLServer2000。主要完成的功能有:用爬虫抓取网页;获取有效信息放入数据库;通过Lucene建立索引;对简单关键字进行搜索;使用Ajax的局部刷新页面展示结果。论文详细说明了系统开发的背景,开发环境,系统的需求分析,以及功能的设计与实现。同时讲述了搜索引擎的原理,系统功能,并探讨使用Aja
2、x与服务器进行数据异步交互,从而改善现有的Web应用模式。关键词:Lucene.net;异步更新;Ajax;搜索引擎目录1引言11.1课题背景11.2国内外研究现状11.3本课题研究的意义11.4本课题的研究方法12Lucene.net构建搜索引擎原理22.1全文搜索引擎22.1.1搜索引擎的分类22.1.2搜索引擎的工作原理22.2Lucene与搜索引擎32.3索引和搜索42.4Ajax技术43需求分析53.1同步环境53.2功能需求63.3性能需求63.4输入输出要求73.5运行需求7第6页共19页4方案设计
3、74.1搜索引擎模型74.2数据库的设计74.3模块设计85系统实现105.1开发环境105.2关键代码详解105.2.1代码结构105.2.2爬虫部分115.2.3索引生成125.2.4页面查询136测试146.1功能测试14结论16参考文献17致谢18声明3需求分析3.1同步环境本系统的同步环境如图3:图3同步环境检索服务器通过Internet检索Web页面。3.2功能需求本设计要实现的功能:第6页共19页1.能够对Internet上的网页内容、标题、链接等信息按链式收集。2.能够实现一定链接深度的网页收集,
4、也就是在Internet上实现一定的URL级的数据收录。3.对收集到的数据存入MSSQLServer2000等关系型数据库中、或者存入文本文件中。4.网站信息库中的信息会不断的变动,对收集到的数据需要定期的自动维护,做到定期的删除、从新收集。5.对收集到的数据进行关键词的检索。6.对检索出的数据要可定位性,即可以显示对数据的出处的链接。7.实现中英文分词功能,能够按中文或者英文单词检索数据。8.实现无刷新的显示搜索结果,对搜索用时的计算、显示,关键字高亮显示等。9.逻辑搜索功能比如“中国”AND“北京”ANDNO
5、T(“海淀区”AND“中关村”)。3.3性能需求1.精度:1.1对收集到的信息需要一定的完整性,即对链接层次里的每个链接页面都能够收集得到,并写入收集的存储区里。1.2对搜索出的内容需要包含有关键字信息2.时间特性要求:2.1数据收集时,因为是对Internet网上Web信息的收集,并且采用URL级链式的网页收集。收集数据时不能够出现无响应的等待。2.2搜索时响应时间应不超过3秒,无论搜索的记录多少。3.灵活性3.1具有良好的中文切词功能。3.4输入输出要求输入:搜索的关键字。处理:去前后空格,关键字,查询索引库
6、。输出:Web页面上显示搜索信息。3.5运行需求1.硬件环境需求:需要使用专用服务器,P4以上,512M以上内存,80G以上硬盘;Internet网络连接。2.软件环境:第6页共19页源端:Windows2003/XP操作系统、MSSQLServer2000数据库、IIS5.0、.NETFramework1.1。4方案设计结合前面的同步原理,以及需求的介绍,下面给出同步的方案设计。4.1搜索引擎模型模型包括爬虫、索引生成、查询以及系统配置部分。爬虫包括:网页抓取模块、网页减肥模块、爬虫维持模块。索引生成包括:基于
7、文本文件的索引、基于数据库的索引。查询部分有Ajax、后台处理、前台界面模块。如图4所示。图4系统模块图5.1功能流程图5.2.2爬虫部分这部份的功能就是从输入的URL开始遍历各个相关的网页,它包括三个功能模块:网页抓取模块、网页减肥模块、爬虫维持模块。首先定义一些变量用于保存抓取到的网页信息,urlList用于保存当前页面上的URL集合。然后根据全局变量url抓取此URL的网页信息到字节流变量里,经过转码后读取到变量PageString里,下步通过函数GetHttpUrl(PageString)对PageStr
8、ing中的URL标记进行提取并返回到urlList变量里,函数GetTitle(PageString)、parseScript(PageString)、parseHtml(PageString)、parseChar(Content)分别对网页信息变量获取标题、去除脚本块、去除HTML标记、去除特殊字符操作。再下步就是对获取到的标题、网页内容、链接等信息调用数据库操作通用类
此文档下载收益归作者所有