桌面搜索引擎的设计与实现(Eclipse+Lucene)(精品)☆

以下是资料介绍,如需要完整的请充值下载. 本资料已审核过,确保内容和网页里介绍一致.  
无需注册登录,支付后按照提示操作即可获取该资料.
资料介绍:

摘  要:随着计算机技术的发展,计算机硬盘中的信息日益膨胀,使得在海量信息库中查找自己需要的信息变的越来越困难。桌面搜索引擎正是为了解决这个问题而出现的技术。
Lucene是一种用纯JAVA语言编写的全文索引检索工具包,目前已广泛用于全文索引/检索的项目中。Lucene的出现为设计桌面搜索引擎提供了极大的方便。本文分析和研究了如何用Lucene索引电脑硬盘中各式各样的文件,以及如何多样查找所需文件,针对这些问题,结合中文的特点,设计了较适合使用的桌面搜索引擎。
本设计说明书主要介绍了本课题的研究背景、国内外研究现状、开发过程和完成的功能,重点说明了本课题的设计思想、各个模块的详细设计过程。

关键词:桌面搜索引擎;索引;Lucene;检索

毕业设计(论文)外文摘要

Design and Implementation of Desktop Search Engine

Abstract: With the development of computer technology, information in computer hard disk is growing, making it more and more difficult to find the information that we need in the massive database. Desktop search engine is developed to solve this problem.
Lucene is a pure JAVA language with the full-text indexing search tool kit that has been widely used for full-text indexing/search of the project, and it provides a great convenience to the design of desktop search engine. In this paper, we analysis how to use Lucene search various files in the hard drives. To solve these problems, combined with Chinese characteristics, we designed a suitable desktop search engine.
The main specification of the design introduced the topic of research background, present situation of domestic and international research, development and completion of the function of the process, with focus on the issues of design, each module of the detailed design process.

Keywords: Desktop search engine; index; Lucene; search

本课题研究的基本内容
Web搜索引擎,虽然现在可以在数十亿的Web上快速查找一篇有用的网页,但是在本地硬盘中搜索一个有用的文档还不是一件简单的事情。尤其,今年来计算机硬盘的容量在不断增大,己经突破500G容量。假如在500G容量的硬盘中查找一篇含有“楚留香”内容的文档是一件难以想象的事情。这么数量庞大的资源的有效利用问题,是一个非常值得研究的课题。
桌面搜索虽然没有Web搜索所涉及的大规模,但是资源种类丰富,涉及的技术面广。现代计算机的发展使计算机应用到了社会的各个角落:文档编辑、视频、音频的编辑,软件设计、网页编辑等。这样在桌面上就遗留了大量的文件,其中有各种文本文档、音视频文件、源代码文件等,这些文件都可以作为桌面搜索的素材,对于这些文件在如此庞大的文件系统中的查找是一个值得研究的问题。桌面搜索的任务就是帮助用户建立本地计算机资源的一个全局视图,让用户忽略它们存储结构,需要什么就可以快速地找到它们,跨越操作系统的文件系统结构。
当然,桌面搜索系统是不能替代文件系统的,它只是建立在本地文件系统上层的搜索系统,将散落在各层目录中的文档的有关信息提取出来,建立成索引存放到一个文档数据库,供用户根据内容查找相应文件,其原理同Web搜索类似。
本课题所实现的就是桌面搜索引擎的一种针对桌面应用中不同格式文档的搜索功能。主要研究的内容为:
(1) Spider动态抓取存储在硬盘上的文件。
(2) 结构化信息抽取技术或元数据采集。
(3) 对不同格式文件的分词、索引。
(4) 其他信息处理技术。
(5) 提供友好的人机界面。

本课题的内容是快速的建立索引并根据指定的类型快速检索出文件的具体位置。具体的功能如下:
(1)索引的参数设置
可以设置索引文件更新的时间间隔,设置索引的目录,设置不索引的目录,配置系统自带的服务器的监听端口。
(2)索引状态的动态浏览
读取最近索引的更新时间,当前索引的大小,索引的文件数量,已被索引的文件的数目,新增文件数目,删除的文件数目,当前的索引工作目录,索引的耗时信息等。
(3)快速搜索
能够准确快速的找到需要的文件的位置信息并附加文件信息的描述,如:文件名、文件内容摘要、文件MIMETYPE、文件后缀、文件大小、文件与搜索内容之间的关联度。
(4)高级搜索
在搜索的基础上制定搜索的MIMETYPE,能够进一步缩小搜索的范围,得到更佳的搜索效果,和更少的搜索耗时。
(5)搜索效率
系统的关键和亮点主要体现在检索的时间效率上,对于10000数量级的文件的检索,检索时间应该保持在0.01秒的数量级上。
 
系统总体功能结构
系统的功能设计方面为达到用户灵活多变的检索需求,系统充分考虑数据的合理组织,各类数据方便,有效的输入,相关信息的链接和处理,检索功能的设计,以及信息的提供类型和方式。根据系统要实现的功能和最终目标,设计出全文检索系统结构如图3.1.1所示,整个系统分三个功能模块:倒排索引建立模块、检索浏览模块、结果处理模块。
(1)对硬盘上的各类文件进行分析处理,提取文件相关信息,做到既不破坏原文面貌,又便于系统处理。
(2)每个文件,对其描述数据和正文数据,按照全文检索的要求,建立倒排索引,存入索引库中。
(3)用户在其浏览器上,通过导航GUI进行浏览或查询,全文检索时,把要查询的信息和条件从HTML表单传递给WEB服务器。
(4)Web服务器把查询信息包括参数发送到指定的JSP页面,JSP再调用QueryBean,该Bean进行实质性的搜索处理:在倒排索引库中进行搜索。
(5)对命中的结果进行处理,包括按相关度排序或时效排序、结果中查询字符的高亮显示等。然后根据文件的位置链接,找到文件。

本系统采用的主要开发环境如下:
(1)Window XP:操作系统。
(2)JDK6.0:JAVA开发工具包 。
(3)JSP2.0:动态网页技术。
(4)Eclipse:JAVA开发的主流IDE。
(5)Lucene:开源搜索引擎框架。
(6)Jacob:JAVA与COM组件通讯的Bridge。
(7)Dreamware:网页设计工具。
(8)Fireworks:图片处理工具。















目  录
1 绪论 1
1.1 课题的研究意义 1
1.2 课题研究内容 2
1.3 课题调研及可行性分析 3
2 需求分析 6
2.1 概述 6
2.2 业务流程分析 6
2.3 数据流分析 7
2.4 数据字典 10
2.5 系统功能需求分析 11
3 系统设计 12
3.1 系统总体功能结构 12
3.2 全文数据库的设计 13
3.3 系统设计开发环境 18
3.4 主要技术介绍 19
4 系统详细设计 24
4.1 索引模块设计 24
4.2 检索模块设计 25
4.3 对搜索结果的处理 26
(优秀毕业设计:www.2bysj.cn)
5 系统实现 28
5.1 索引模块实现 28
5.2 检索模块实现 31
5.3 搜索结果处理的实现 33
6 用户使用手册 35
6.1 系统功能简介 35
6.2 系统运行环境与系统安装 38
6.3 系统操作指南 40
7 系统评价 41
7.1 系统特色 41
7.2 系统存在的不足与改进方案 41
7.3 设计收获和心得 42
结  论 44
致  谢 45
参 考 文 献 46

参 考 文 献
[1] 袁津生.  搜索引擎与信息检索教程[M] (21世纪高等学校精品教材). 水利水电出版社. 2008.
[2] 袁津生,蔡岳. 搜索引擎原理与实践[M]. 北京:北京邮电大学出版社. 2008.
[3] 邱哲,符滔滔. 开发自己的搜索引擎——Lucene 2.0+Heritrix[M]. 北京:人民邮电出版社,2007.
[4] 林上杰,林康司. JSP2.0技术手册[M]. 电子工业出版社,2004.
[5] (美)Bruce Eckel. JAVA编程思想[M]. 北京:机械工业出版社,2007.
[6] Robert C. Martin. 敏捷软件开发:原则、模式与实践[M]. 北京:清华大学出版社,2003.
[7] Eric Freeman,Elisabeth Freeman,With Kathy ierra,Bert Bates. Head First Design Patterns[M]. 中国电力出版社O'REILLY系列,2007.
[8] 阎宏. JAVA与模式[M]. 电子工业出版社,2002.
[9] 刘挺 等. 信息检索系统导论[M]. 机械工业出版社出版. 2008.
[10] 叶鹰. 信息检索:理论与方法[M]. 高等教育出版社. 2004.
[11] 焦玉英,符绍宏,何绍华. 信息检索(普通高等教育精品规划教材)[M]. 武汉大学出版社. 2008.
[12] 黄昌宁等. 语言信息处理专论[M]. 清华大学出版社. 1996.
[13] 姚天顺等. 基于规则的汉语自动分词系统[J]. 中文信息学报. 1990年第1期.
[14] 车东. Lucene:基于JAVA的全文检索引擎简介. 车东博客
[15] 刘廷元 主编. 数字信息检索教程[M]. 华东理工大学出版社. 2006.
[16] 周前,肖建华. 全文检索中的文本学习技术研究[J]. 湖南工程学院学报,2001 第11卷 第2期:64-67.
[17] 黄亮,符绍宏. 自动分词技术及其在信息检索中应用的研究[M]. 现代图书情报技术. 2001 第3期:26-29.
[18] 陈淑燕,瞿高峰. 全文检索系统的数据库设计[J]. 延安大学学报(自然科学版). 2001第20卷第1期:31-34
[19] 赵新民. 搜索引擎的中文信息处理技术[J]. 现代情报. 2002年5月第5期:98-100.
[20] (俄)蒂瑟汉姆,(俄)法斯特鲁普. 索引及搜索引擎内幕中文版[M]. 世界图书出版公司. 2008.