基于Java的专题搜索引擎设计毕业论文
2021-12-08 21:55:46
论文总字数:21123字
摘 要
在数据信息高速积累的21世纪,大数据背景下的普通的搜索引擎已经不能满足人们的日常所需,经常会遇到搜不到结果或者是无关广告信息过多的问题,用户希望能在特定的领域内搜索指定的问题,就有了面向特定领域的专题搜索引擎的需求。
首先,本文使用了Heritrix为爬虫工具,爬取网页信息后使用htmlparser提取有用信息,以一定的格式保存在本地的txt文件中,其次,用lucene建立索引并使用mysql为数据库,完成索引的创建和储存,然后使用spring为后端框架,DWR为前后端交互框架开发的一个专题搜索引擎系统,系统完成了网页的爬取,信息的提取,索引的创建和搜索的功能,对个人用户提供新闻信息搜索的服务。
论文主要研究了爬虫的应用和基于lucene的搜索引擎系统的构建,研究结果表明了基于lucene的搜索引擎拥有较高的实用性,再加上适用的中文分词器能够对搜索词呈现较好的索引效果。
关键词:垂直搜索引擎;Heririx;lucene
Abstract
In the 21st century, with the rapid accumulation of data and information, the common search engine under the background of big data has not been able to meet people's daily needs. It often encounters the problem of finding no results or too much irrelevant advertising information. Users hope to search the specified amount in a specific field, and the demand of special search engine for a specific field appears.
First of all, this paper uses heritrix as the crawler tool, crawls the web page information and uses Htmlparser to extract the useful information, which is saved in the local TXT file in a certain format. Secondly, it uses Lucene to build the index and MySQL as the database to complete the creation and storage of the index. Then it uses spring as the back-end framework and DWR as a special search engine developed by the front-end and back-end interaction framework System, the system has completed the function of web page crawling, information extraction, index creation and search, and provides news information search service for individual users.
This paper mainly focus the structure of search engine based on Lucene and the usage of crawler.The results show that the search engine based on Lucene has good functionality,and the suitable Chinese word segmentation means can show better index result on search words.
Key Words:Vertical search engine;Heririx;lucene
目 录
第1章 绪论 1
1.1 选题的背景及其意义 1
1.2 国内外研究现状 1
1.3 本文结构 1
第2章 开发环境与技术选型 2
2.1 开发环境 2
2.1.1 环境概述 2
2.1.2 开发工具选择 2
2.2 技术选型 2
2.2.1 技术概述 2
2.2.2 后端技术选型 2
2.2.3 前端技术选型 4
第3章 需求分析和设计 5
3.1 设计要求 5
3.2 需求分析 5
3.3 可行性分析 6
3.3.1 技术可行性 6
3.3.2 操作可行性 7
3.4 系统结构设计 7
3.5 系统功能设计 8
3.5.1 爬虫模块 8
3.5.2 索引模块 10
3.5.3 DWR模块 12
第4章 专题搜索引擎的实现 14
4.1 爬虫模块详细设计 14
4.1.1 爬虫的扩展 14
4.1.2 爬虫的配置 16
4.1.3 爬虫数据的处理 17
4.2 索引模块详细设计 18
4.2.1 索引的创建 18
4.2.2 数据库信息 20
4.2.3 索引搜索 20
4.3 DWR模块详细设计 21
第5章 功能测试 23
5.1 单元测试 23
5.2 集成测试 26
第6章 总结与展望 28
6.1 总结 28
6.2 展望 28
致谢 29
参考文献 30
绪论
选题背景及其意义
我们日常生活的很多方面都需要用到搜索引擎,我们使用搜索引擎进行学习、生活、工作、娱乐等的活动,我们的生活离不开它。但随着互联网数据内容的增多,很多的图片、文档、论坛、视频、广告的加入导致了我们可能会搜索不到自己想要的东西,查找想要的结果可能需要比较长的时间,查到的结果中包含大量无用的广告信息,人们渐渐地产生了一种新的需求,专题搜索引擎就出现了,专题搜索引擎一般来说是针对某一特定领域的搜索引擎,有专业,精确的特点,市面上很多的应用都有针对自己领域的搜索引擎,为用户提供了快速且精确的查询结果,将成为未来搜索引擎发展的趋势。
国内外研究现状
国内外比较有名的垂直搜索引擎有谷歌学术,可以在上面找到需要的文献资料,极客搜索,支持很多编程问题的答疑,以及随着人们生活娱乐发展所孕育的一些网站,比如表情包搜索。
尽管很多的搜索引擎都提供了比较好的服务,但是也没有很好的普及到大家的日常生活里,有如下的原因:
- 没有很好的分词而导致搜索不到想要的结果
- 夹杂的广告等的无用信息过多而使用户体验下降
- 系统的响应速度慢
本文结构
本文的第一章是绪论,大致介绍了一下为什么选题以及国内外对于这个专题搜索引擎的研究状况,第二章是开发需要的环境和技术的对比与选择,说明了本系统需要的环境以及相关的技术比较和选择,第三章为系统需求分析和系统的结构设计,讲解了框架的设计和使用的相关技术手段,以及前后端的具体实现过程,第四章对系统的设计进行了详细的描述,第五章是系统的功能测试环节,分别进行了单元测试和整合测试,把几个功能单独测试了之后又把它们整合起来测试了,第六章是本系统的总结和展望,文章的结尾是致谢和参考文献。
开发环境与技术选型
开发环境
环境概述
一、操作系统:Windows 10 64位笔记本电脑
二、CPU:Intel Core i7-8750H(2.2GHz/L3 9M)
三、安装内存:8.00GB
开发工具选择
系统使用的是Eclipes和Apache Tomcat 8.5服务器开发的,数据库上用的是Mysql,JDK环境为Oracle Java SE7
技术选型
技术概述
系统采用的是B-S开发模式,客户端和服务器端分开来开发,分离有助于发现系统出现的问题所在,可以快速找出问题并且定位问题,不会再逻辑上就出现问题,页面显示,页面跳转,浏览器适配,脚本编写,前端风格都是由前端工程师来负责,接口功能代码,数据交互,交互时间等的问题由后端工程师来解决,双方分离开来,为代码的易读性和重构性做出了很大的贡献,在代码的重构方面,只用修改接口文件代码即可。
前后端的交互方式为DWR,在查找可用方法时偶然看到了这个框架,它可以在前端直接调用后端接口的功能函数,使用起来很是方便, DWR(Direct Web Remoting)是一个基于java的开源框架,它可以简化前端和后端的交互过程,可以在前端界面上直接使用后端的功能函数代码,就好像是在前端浏览器上写java代码一样,DWR会在适配时又有一个服务连接器,可以把前端的代码封装为java代码传到后端服务器上,直接调用后端的java代码,之后后端服务器又将结果返回到前端界面上,前端界面显示在浏览器上完成与用户的交互过程,使用起来很是方便,大大简化了流程。
后端技术选型
系统的第一步是从新闻网站爬取需要的信息,爬虫的基本原理是给定的URL中找到新的URL,将它们都放入队列中,排队等待爬取,在新的URL中又把新发现的URL放入队列中,直到找不到新的URL为止,基于JAVA语言的好用的开源爬虫有很多,适合用在搜索引擎上的爬虫有Heritrix和Nutch,在使用便捷和扩展性开发方面Heritrix更胜一筹,但Heritrix也有缺点:
- 它单个网站抓取的效率比较低,不适用于一个网站的爬取任务,最好是很多网站一起抓取。
- 当连接中含有中文的时候就不会抓取到队列中,对中文网站不是很友好。
- 没有一个稳定的版本,目前的版本杂乱,且配置过程复杂。
第二步要解析爬虫爬取的网页文件,提取其中的有用信息,可用的开源jar包有很多,像Jsoup,htmlparser等,功能都大同小异,解析网页中的标签信息,准确提取其中的有用信息,系统中选用的是htmlparser,它通过解析网页标签的方法提取有用的信息,因为解析代码的固定,对于网站格式的要求比较高,必须要爬取的每一个URL的网页结构相似才可以都提取到位,所以选择了新闻网站,爬取下来之后通过代码把有用信息写入txt文件并保存在本机的文件夹中。
第三步是给生成的txt文件通过lucene创建各自的索引,并把对应的数据存入数据库中。数据库使用的是mysql,lucene对于中文分词的支持不是很好,jar包提供的中文分词方法只能把中文一个一个的分开,这里采用了国人写的IK分词器,中文分词效果比较理想,但是他在2012年就停止了这个jar包的更新,所以得把lucene的版本往下降以适应IK分词器,这里使用的lucene版本为4.6。
网络上可供选择的开源的搜索引擎工具有Lucene、Solr和Elasticsearch,各自都有自己的优点和缺点,但Solr和Elasticsearch都是在Lucene的框架下通过封装一些功能来实现的。
Lucene是一个工具集合包,里面包含了很多个功能函数的接口,能够达到创建索引和针对索引搜索的基本功能,但它并不含有搜索引擎的系统,它有的是索引,读写,搜索,排序等的小功能集合起来的一个工具包,在这些功能实现的时候对比起另外两个工具比较麻烦,因为另外两个工具把这些功能都封装在了功能函数中,索引的创建等的功能不需要太多的代码实现。
Solr是一个基于Lucene的功能代码写的一个框架,里面封装了很多Lucene的功能函数,使用起来简便。
请支付后下载全文,论文总字数:21123字
相关图片展示: