计算机毕业论文|计算机论文|计算机毕业设计|计算机网络论文  
设为首页 加入收藏 联系站长
论文无忧网|专业的计算机论文、计算机毕业论文服务网站
计算机毕业设计 计算机毕业论文 计算机论文 管理系统 工资 在线选课 图书
当前位置:计算机毕业论文网 >> JSP论文设计 >> 浏览文章
基于内容的搜索引擎

【说明】本站所列作品的内容只是论文的部分介绍,如果想了解此作品的详细资料,请联系在线客服。
全套设计作品包括系统+源程序+论文+开题报告+使用手册,可以直接作为毕业设计/论文使用.
本站作品全部经过技术员测试,完整无错,大家可以放心参考使用。包调试,包指导,售后全部免费,直到您通过答辩为止。
现成作品的购买流程请参照:购买现成作品流程 网站介绍 常见问题解答

摘 要
 
网络中的资源非常丰富,但是如何有效的搜索自己需要的信息却是一件困难的事情。建立搜索引擎就是解决这个问题的最好方法,它可以帮助用户快速定位自己所要查询的资源。但是现在大部分搜索引擎都不不是开源免费的,因此本文尝试设计一个简单的搜索引擎,并可以扩展到企业、学校内部网络实现非结构化文档的内容检索。
本文首先介绍了关于这次设计所需要的关键技术Lucene、Ajax、服务器推等,以及它们的工作原理。然后在此基础之上分析设计一个搜索引擎的框架,主要有三个大模块组成:爬虫模块、索引模块和搜索模块,并描绘了三个模块之间关系图,实现模块间的低耦合度。并对三个模块进了分析、设计和实现。首先,爬虫模块是建立网页库和索引库的基础,因此高效灵活的数据抓取会为资源库的建立做下铺垫;其次,索引模块是实现高效数据检索的基础,合理文档内容索引,以及索引数据的存储结构,会直接影响查询速度,进而会影响用户体验。因此合理的设计非常重要,基于此本系统采用了Lucene实现内容的倒排序索引,比传统的索引效率高;最后,搜索模块是检索用户需求数据的模块,通过数据的分页显示减少了服务器和客户端数据的传输量,并实现类似Google Suggest效果提高用户体验。
文章最后总结了系统整体设计和实现,并对未来的扩展做了分析,主要是如何使用基于MapRedue的分布式库Hadoop实现分布式爬取、索引和检索,以及如何使用内存数据库建立效率更高的URL库和线程池,提高爬虫网页抓取效率。
 
关键词:Lucene,服务器推,爬虫,索引,搜索,MapReduce,Hadoop,内存数据库
第1章 绪论
 
1.1课题背景
研究表明,搜索引擎是目前最重要、效果最明显的网站推广方式,也是最为成熟的一种网络营销方法。当今,互联网已在经济生活中扮演越来越重要的角色,国内众多企业也逐渐意识到网络对于自身发展的重要性。在浩如烟海的信息世界里,网站如何能让客户找到,网站如何能被更多的人访问,尤其是如何能被潜在客户浏览,有效地实施网上营销策略,就显得非常重要。这就需要借助专业的网站推广手段,而搜索引擎,正是网站推广中最廉价、最高效的方式,使网站吸引更多的潜在客户,从而实现企业利益最大化。同时学校、企业部存放大量非结构化数据,以单独文档或邮件的形式存放,检索和查找利用困难,通过全文检索系统,建立一个简单的内部搜索引擎,进行有效组织文档资源,可帮助学校或者企业快速定位所需要的资源,检索到想要查找的有效资源[1]
1.2 实现基于内容检索需要解决的问题
首先,搜索引擎是一个非常庞大的系统,良好的架构设计非常的重要,网页抓取模块,内容索引模块,前台搜索模块,三者之间底耦合度非常重要,这样可以方便以后的扩展。
其次,Internet上网络资源非常的多,如何有效快速的抓取网页数据,建立自己的网页数据库显得十分重要。并且网络资源的数据格式种类比较多,如何根据不同类型的资源格式建立自己的索引库需要一个很好的可扩展的架构。
再次,如何实现搜索内容的准确度、查全率、查询效率、收录数据量,网页更新速度等,这些都是检验搜索引擎性能和效果的标准。
1.3 课题研究的目的和意义
随着网络的快速发展,百度和Google这些比较流行的搜素引擎满足了普通用户内容搜索和资源的定位。但是在访问一些特定网站的时候,网站资源比较繁杂,用户依靠自己去查找定位一些资源所要花费的时间比较长。同时企业或者学校内部的资源文档种类繁多,数量也比较大,企业和学校从这些文档中提取出自己需要资源需要花费很长时间。本系统设计的目的就是,希望设计一个搜索平台。可以很容易的扩展到企业或者学校内部,实现企业内部非结构化文档的全文内容检索,减少企业定位资源的时间。同样也可以很容的扩展到网站内部,实现整个站点的内容检索,帮助用户在浏览该网站的时候快速定位资源[1]
3.2 各个模块功能分析
整个系统分的3个模块主要功能如下:
(1) 网页抓取模块
使用HTTP协议,采用多线程技术根据初始URL开始抓取网页,存储到本地磁盘,并分析出当前网页中新的URL存储到MySql数据库中,下一次抓取从URL数据库中查询出未被爬去的网页进行新一轮网页抓取。并且关于爬虫的设计还要考虑其可配置性,抓取性能,或者使用Hadoop实现分布式抓取。其中URL库中URL数量会随着爬虫抓取时间的增加不断的加大,可能十万百万数量级的URL,甚至上亿级的,如何有效的从这么庞大的数据库中检索到需要抓取的网页,好的设计显的非常重要。本次设计主要考虑是用Hibernate实现数据库的操作,并且它自带了缓冲池。可以提高查询效率。也可以考虑使用内存数据库,这样也可以提高查询效率。同时,网页库中的URL要有标志,标示该URL以被抓取过。防止重复的抓取,或者进入死循环中。并且URL的更新周期也要考虑,因为一些网站的内容是在不断更新的,如何根据一定得算法对已经下载的一些网页进行重新抓取。
(2) 索引模块
根据爬虫抓取网页的类型,选择不同的解析器,解析其内容,比如是HTML格式用HTMLParser解析内容,PDF格式用PDFbox去解析内容。并根据不同内容使用开源Lucene对其内容进行索引,建立自己的索引库。其中的索引时用倒排序的原理实现,通过关键字去查找文章,可以提高查询效率。并且要考虑把重复的索引合并。在进行网页内容索引之前,要多文档的内容实现分词。中文分词好坏也会影响索引效率,因此要选择一个合适的中文分词工具。通过查阅资料,基本考虑使用庖丁解牛是实现中文分词,它的分词效率非常高[6]
(3) 搜索模块
根据前台输入的关键字在本地索引库中查找含有该关键字的网页资源,并根据一定的算法得到其内容评分,然后按照降序排序输出给客户。并同时提供基于Ajax的友好提示功能,其具体实现通过统计用户查询的关键字实现的。大体思路是,在每次用户输入关键字查询的时候,把用户已经提交的关键字保存到关键字库,首先查询关键字库中是否已有该关键字,如果有则更新它的查询次数,如果没有则插入该关键字和与其匹配数量的查询结果于数据库。在用户输入查询关键字的时候,使用Ajax异步交互的方式查询数据库,模糊查询跟用户查找关键字相似的关键字,并且排名在前十的结果给用户以提示,加快用户定位自己需要的资源。
3.3 小结
完成了Web上基于内容搜索平台的整体设计工作。规划好各个模块的功能,每个模块在整体系统中的位置以及系统相关实现细节的考量,为后续的开发提供明确的实现路线


上一篇: 开放式实验室管理系统
下一篇: 储蓄卡管理系统
在线客服  
点击这里给我发消息 点击这里给我发消息
点击这里给我发消息 点击这里给我发消息
QQ:528311109 QQ:528311109
  服务邮箱:Service@paper51.com
热门浏览
论文降价了,2010年毕业的同学你
计算机毕业论文无忧网-公告
计算机毕业论文-论文无忧网至同学
5年信誉服务保证-计算机毕业论文
购买现成作品流程
计算机毕业论文答辩过程中需要注
付款方式
网站介绍
计算机毕业论文答辩前的准备
常见问题
最近更新  
论文降价了,2010年毕业的同学你
计算机毕业论文无忧网-公告
计算机毕业论文-论文无忧网至同学
5年信誉服务保证-计算机毕业论文
购买现成作品流程
计算机毕业论文答辩过程中需要注
付款方式
网站介绍
计算机毕业论文答辩前的准备
常见问题
设为首页 | 加入收藏 | 关于本站 | 联系站长 | 友情链接 | 版权申明 | 在线留言 | 网站地图
Copyright 2006-2008 Powered by Paper51.com,论文无忧网 All Rights Reserved.
声明:《论文无忧网》,根据《信息网络传播权保护条例》,如果我们网站上的的作品侵犯了您的权利,请及时通知我们,我们会及时删除。
《论文无忧网》为您提供优秀的计算机毕业设计|计算机毕业论文|计算机论文|毕业论文等资料,仅供学习参考使用。