构造简单的搜索引擎Word格式文档下载.docx
- 文档编号:22125956
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:15
- 大小:2.74MB
构造简单的搜索引擎Word格式文档下载.docx
《构造简单的搜索引擎Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《构造简单的搜索引擎Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
2.2具体模块设计实现4
第3章实验总结报告10
参考文献14
第1章开题报告
1.1背景和意义
搜索引擎(SearchEngine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。
随着信息时代人们能够使用和开采的信息量极其巨大,信息的更新速度不断加快。
WWW信息资源呈指数级数增长的发展状态,海量的信息数据连同现代的网络体系已发展成为一个巨大的、动态的、分布的和自动的信息系统。
面对如此纷繁的信息,如何剔除无用的信息,提取有用的知识是一个非常现实的问题。
希望通过这次实验学习到搜索引擎相关的知识,从而学到构建简单搜索引擎的能力,进而完善使用java技术的能力,提高自己的编程素养。
培养团队合作精神,以及开拓创新能力。
1.2主要方法和研究进展
利用JAVA编程语言、网络爬虫技术、Lucene来构建一个简单的内网垂直搜索引擎。
其中利用网络爬虫来搜集网站上网址链接以及数据库内容,完成数据采集,然后构造数据索引库,最终实现简单的内网搜索引擎的构建。
图1搜索引擎的程序的简单结构图
1.3主要内容
1.3.1抓取网页
利用nutch进行网页抓取,首先给定一批种子链接,指定抓取的深度,顺着网页中的超链接,开始抓取,在抓取的过程中,会丢弃重复的内容和urls。
1.3.2处理网页
将网页下载后,做一些简单的预处理工作,才能提供检索服务。
最重要的就是提取关键词,建立索引库和索引。
不进行计算网页重要度、丰富度的计算。
1.3.3提供检索服务
本简单搜索引擎采用网页上输入关键词,然后返回匹配到该关键词的网页的方式(提供网页标题,URL和网页的摘要信息)。
图2简单的操作系统的工作流图
1.4结构安排
1.4.1网页抓取模块
本模块主要在nutch上二次开发实现,下载nutch源码并导入eclipse,主要进行如下二次开发:
1.4.1.1信息源选择
本简单搜索引擎进行主题类爬取,具体进行新闻类信息的爬取。
1.4.1.2信息预处理
这块主要进行编码的解决,网络上的信息格式五花八门,为了防止抓取的内容乱码,需要进行编码的二次开发。
1.4.1.3格式识别并抽取文本
一般nutch下载下来的文档是html,但还存在诸多类型的文档:
txt、doc、pdf、rtf等,本简单搜索引擎只进行html文档的抽取。
1.4.1.4parse正文内容
为了满足搜索准确率的问题,考虑仅仅将网页正文的内容提取出来作为索引的内容。
1.4.2索引建立模块
本模块主要采用solr实现,根据采集下来的网页,对solr进行定制配置,并进行必要的扩展。
1.4.3信息存储模块
nutch2.x将存储层剥离出来,可以使用多种数据库,如HBase、Mysql等来存储数据,本简单搜索引擎采用我们熟悉的Mysql来存储数据;
首先构建数据库,根据我们采集的信息设计相应的表,并在数据库上建立简单的索引。
图3nutch运行界面
1.4.4信息检索模块
采用网页的方式、并提供类似XX、google的搜索框;
输入关键词,点击搜索,返回搜索结果。
第2章详细设计报告
2.1详细设计方案
采用Nutch+Solr+Mysql+Tomcat,Nutch进行信息收集,即爬虫。
Solr建议索引,并通过HttpGet操作提出查找请求,并得到XML格式的返回结果。
Mysql用作信息的存储,网页抽取后的信息存在数据表中。
Tomcat用来提供网页端的搜索入口。
2.2具体模块设计实现
2.1.1Nutch
1、一个开源Java实现的搜索引擎。
提供了我们运行自己的搜索引擎所需的全部工具。
2、二次开发,解决乱码、解析、html信息抽取。
3、本简单搜索引擎进行主题类爬取,主要进行新闻类主题的爬取。
2.1.2Solr
1、一个高性能,采用Java开发,基于Lucene的全文搜索服务器,同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化。
2、通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引。
3、通过HttpGet操作提出查找请求,并得到XML格式的返回结果。
2.1.3Tomcat
1、一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器。
2、连接Solr和mysql,编写Jsp程序。
3、提供网页端搜索入口,良好的人机交互界面。
2.1.4Mysql
1、关系型数据库管理系统,体积小,速度快。
2、建立数据存储表,字段id、title、date、time、author、keys、summary等。
3、数据量大,针对mysql数据表建立索引,查询速度更快。
4、优化查询语句,提高效率。
图4爬虫组件
图5正则表达式(利用Jsoup工具抽取所需文本)
图6数据保存代码(将url、标题、关键词等存入Mysql)
图7主程序代码(爬取、筛选、存储部分)
图8数据库保存内容
图9数据库保存内容
图10利用bootstrap实现搜索界面
图11后台搜索处理主函数
第3章实验总结报告
经过几个月的学习与努力,我们的实验已经接近尾声。
通过这一过程,使我们对程序开发及数据库的操作有了更高的认识,也使我们在程序设计方面有了很大的提高。
信息安全实验涉及到许多以前学过的课程,如:
Java程序设计、计算机网络、数据库原理等一些重要的课程,利用信息安全综合实验这个机会我们也巩固了这些学过的知识。
通过这次信息安全综合实验,我们从中学到了许多新的知识,培养了我们综合多门学科中的知识、迅速规划并开发出目标系统的能力,以及编程能力也有了很大的提高。
严格按工程的方法来设计系统相当重要。
系统分析过于简单,系统定义过于抽象,则在系统设计与编码阶段遇到的困难就越多,特别是其中若不得不做一些功能性甚至系统结构性方面的变动,将面对许多重复性的工作。
在系统开发过程中重复工作过多,将会极大地影响系统开发的积极性,进而影响整个系统的质量。
在这一点上,我们深有体会,我们的结论是系统分析越充分,系统定义越具体,那么后续的系统设计与开发工作就越有效率,且系统的质量也越有保障。
本系统是一个最基本的简单的内网搜索引擎,可扩展性很大,科学的开发过程也极有利于系统的扩充与扩展。
系统的数据库服务器采用mysql。
系统采用Web体系,系统安全性较好。
程序的开发严格按照软件工程的设计思想,从需求分析到总体设计,都是精细而完整的。
程序具有高模块化的特点,有较强的的可读性和可维护性。
而且在界面设计中使用了CSS样式技术,使界面更美观。
最终实现成果展示
图12搜索网页界面
图13搜索关键词:
文化
图14“文化”搜索结果
图15搜索结果网页
图16搜索结果网页
图17搜索关键词:
西工大
图18搜索结果网页
参考文献
[1]郎波.Java语言程序设计.第二版.清华大学出版社,2010、9.
[2]罗刚.自己动手写搜索引擎.电子工业出版社,2009、10.
[3]李晓明,闫宏飞,王继民.搜索引擎——原理、技术与系统.电子工业出版社.2009.
[4]董宇.一个Java搜索引擎的实现
[5]杨尚川.Nutch相关框架安装使用最佳指南.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 构造 简单 搜索引擎