简单搜索引擎的设计与实现
无需注册登录,支付后按照提示操作即可获取该资料.
简单搜索引擎的设计与实现(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文15700字,程序代码)
搜索引擎(Search Engine)是一种网上信息检索工具,它能帮助用户迅速而全面地找到所需要的信息。搜索引擎是指根据一定的策略,运用特定的计算机程序搜集互联网上的信息,在对信息进行处理和组织后,为用户提供检索服务的系统。
搜索引擎的原理可以分为四部分:从互联网上抓取网页,建立索引库,在索引数据库中排序,对搜索结果进行处理和排序。结合搜索引擎的原理本系统模拟出了几个重要模块:Heritrix网络爬虫模块、预处理模块、建立索引模块(index)、查询模块,初步的模拟了各个模块,开发了新闻检索的搜索引擎。
本系统开发平台为Eclipse,采用JAVA开发语言结合Htmlparper、Lucene完成具体实现,在Web服务器上部署发布。
本文首先阐述了开发背景、搜索引擎的的现状和发展,较详细的论述了本系统的总体设计和功能实现,然后论述了系统的部署运行。最后,就开发本系统的技术难点进行了分析。
系统模块组成
经过深入调查和研究本课题初步确定了如下功能需求模块:
(1)网络爬虫模块
网页搜集:作为网页搜集的重要组成部分—网络爬虫,该系统采用了开源软件heritrix1.14.1。对heritrix的源码进行分析,并做了适当的扩展以适应该课题的需求。
该系统从http://news.sina.com.cn/站点开始抓取,并只抓取包含“sina”的html,htm,JSP,PHP,asp等网页信息。
网页预处理:网页预处理是在网页搜集完成之后进行的。在得到海量的原始网页集合后,还无法直接利用这些原始网页来提供检索服务。因为这些原始网页中,包含了大量的HTML标记,事实上,这些标记的数据量远远大于网页内容的数据量。
在本系统中,需要为网页程序指定一个存放处理好的网页位置,具体路径在config.properties中配置。
(2)索引模块
索引器的功能是理解搜索器所搜索的信息,由分析索引模块程序对收集回来的页面进行分析,提取相关网页信息(包括网页所在的URL,编码类型,摘要,关键词等),根据一定的相关度算法进行大量复杂的计算,得到每一个页面针对网页内容中及超链接中每一个关键词的相关度,然后用这些相关信息建立网页索引。
(3)搜索模块
当用户输入关键词后,有搜索模块程序从网页索引中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,排名越靠前,最后由用户接口将搜索结果的链接地址和网页内容摘要等内容组织起来返回给用户。
(4)用户接口
用户接口的作用是输入用户查询,显示查询结果,提示用户相关性反馈机制。用户接口的主要目的是方便用户使用搜索引擎,高效率,多方式地从搜索引擎中得到有效,及时的信息。
目 录
摘 要 I
Abstract II
1 绪论 1
1.1 开发背景 1
1.2 研究现状 2
1.2.1 国际著名搜索引擎现状 2
1.2.2 各种搜索引擎的不足之处 2
1.3 搜索引擎的发展 3
2 总体设计 5
2.1 问题的定义 5
2.2 技术可行性 5
2.3 系统开发工具 6
2.4 需求分析 7
2.5 系统基本功能 7
2.6 系统模块组成 7
3 功能实现 9
3.1 网络爬虫模块 9
3.2 索引搜索实现模块 16
4 系统部署运行 23
4.1 基于Tomcat的Web服务器 23
4.2 在Tomcat上部署项目 23
4.3 系统运行 24
5 技术难点分析 25
5.1 中文分词 25
5.1.1 什么是中文分词 25
5.1.2 中文分词和搜索引擎 25
5.1.3 中文分词技术 25
5.1.4 Lucene3.0中的几种分词系统 28
5.2 使用中文分词 30
结束语 34
致 谢 35
参考文献 36