17
学校编码:10384 分类号 密级 学号:X2012230301 UDC 基于 Lucene 的全文检索系统的设计与实现 Design and Implementation of Full-text Retrieval System Based on Lucene 范蕾 指 导 教 师: 吴清锋副教授 专 业 名 称: 论文提交日期: 2014 4 论文答辩日期: 2014 5 学位授予日期: 师: 答辩委员会主席: 2014 4 厦门大学博硕士论文摘要库

Design and Implementation of Full-text Retrieval System ... · 学校编码:10384 分类号 密级 学号:X2012230301 UDC 工 程 硕 士 学 位 论 文 基于Lucene 的全文检索系统的设计与实现

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

  

学校编码:10384 分类号 密级

学号:X2012230301 UDC

工 程 硕 士 学 位 论 文

基于 Lucene 的全文检索系统的设计与实现

Design and Implementation of Full-text Retrieval System

Based on Lucene

范蕾

指 导 教 师: 吴 清 锋 副 教 授

专 业 名 称: 软 件 工 程

论文提交日期: 2 0 1 4 年 4 月

论文答辩日期: 2 0 1 4 年 5 月

学位授予日期: 年 月

指 导 教 师:

答辩委员会主席:

2014 年 4 月

厦门大学博硕士论文摘要库

  

厦门大学学位论的文原创性声明

本人呈交的学位论文是本人在导师指导下,独立完成的研究成

果。本人在论文写作中参考其他个人或集体已经发表的研究成果,

均在文中以适当方式明确标明,并符合法律规范和《厦门大学研究

生学术活动规范(试行)》。

另外,该学位论文为( )课题

(组)的研究成果,获得( )课题(组)经费或实

验室的资助,在( )实验室完成。(请在以上括号

内填写课题或课题组负责人或实验室名称,未有此项声明内容的,

可以不作特别声明。)

声明人(签名):

年 月 日

厦门大学博硕士论文摘要库

  

厦门大学学位论文著作权使用声明

本人同意厦门大学根据《中华人民共和国学位条例暂行实施办

法》等规定保留和使用此学位论文,并向主管部门或其指定机构送

交学位论文(包括纸质版和电子版),允许学位论文进入厦门大学图

书馆及其数据库被查阅、借阅。本人同意厦门大学将学位论文加入

全国博士、硕士学位论文共建单位数据库进行检索,将学位论文的

标题和摘要汇编出版,采用影印、缩印或者其它方式合理复制学位

论文。

本学位论文属于:

( )1.经厦门大学保密委员会审查核定的保密学位论文,

于 年 月 日解密,解密后适用上述授权。

( √ )2.不保密,适用上述授权。

(请在以上相应括号内打“√”或填上相应内容。保密学位论文应

是已经厦门大学保密委员会审定过的学位论文,未经厦门大学保密

委员会审定的学位论文均为公开学位论文。此声明栏不填写的,默

认为公开学位论文,均适用上述授权。)

声明人(签名):

年 月 日

厦门大学博硕士论文摘要库

摘  要 

I

摘 要

二十世纪九十年代开始,计算机技术和互联网技术获得了巨大的发展,随

着计算机以及互联网技术的大规模普及应用,人们所接触到的信息量也呈现指

数级的增长,信息量的增大迫使人们必须想出各种方法来快速获得所需要的有

用信息,为此,人们发明了各式各样的信息查找技术,但是,如何才能快速高

效地完成信息的存储以及查找操作呢,这是非常值得国内外读者去研究的课题。

当前,搜索引擎已经成为信息网络化时代最主流的技术之一,作为搜索引

擎核心的技术,全文检索(Full-text Retrieval)是指使用自然语言进行检索,基于

全文索引并以文本数据为主要处理对象的检索技术。全文检索与普通的数据库

检索设计不太一致,前者需要处理包括结构化数据以及非结构化数据,而后者

只能处理结构化数据,所以,比起普通的数据库检索,全文检索具有更强大的

功能,更容易满足用户的需求。

论文主要是探讨艺术学院办公系统的全文检索模块,全文检索的基本要求

就是能够实现对公文内容,通知公告,内部新闻等文本信息进行内容检索。系

统基于 J2EE 体系架构进行开发,采用 SSH2 项目开发技术架构,使用 MYSQL

数据库系统。

本文先论述相关技术,从搜索引擎的原理、组成、数据结构、工作流程等

方面做深入细致地研究分析,然后根据项目的实际需求,以 Lucene 工具库为基

础,设计并且实现一个基于全文检索的站内搜索引擎系统,为用户提供更为方

便的搜索功能。

关键词: Lucene;全文搜索;办公系统 厦门大学博硕士论文摘要库

Abstract

III

Abstract

From the 1990’s, computer and Internet technology are developed rapidly.

With the widespread use of computer and Internet technology, the information that

people accessed is exponentially grew. That makes people must figure out various

ways to obtain useful information rapidly. Therefore, many kinds of information

search technologies are developed. However, it is worth figuring out how to search

and store the information quickly and efficiently.

Nowadays, one of the most popular technologies is search engine. As the kernel

of search engine, Full-text Retrieval means retrieval using natural language which is

main processing text data, based on full-text indexing. Full-text Retrieval is different

from database retrieval. Unlike ordinary database designed to retrieve structured

data queries, full-text retrieval queries not only structured data but also unstructured

data queries. Compare to indexing retrieval, Full-text Retrieval is more powerful and

can be satisfied with user’s requirements.

The main dissertation is to explore the Full-text Retrieval module of office

system in Art Institute. This system requires a search function can be achieved on

document content, Announcement, internal news content such as text information

retrieval. System architecture is based on J2EE development, project development

using SSH2 technology architecture, and MYSQL database system.

Firstly, this dissertation discusses related technologies in principles of search

engine, composition, data structures, work processes and other aspects of doing

intensive research and analysis. Then, according to the actual needs of the project,

Lucene tool library is used to design and implement a Full-text Retrieval system

which can provide a search function more conveniently.

Keywords: Lucene; Full-text Retrieval; OA

厦门大学博硕士论文摘要库

目录 

IV

目 录

第一章 绪论 ............................................................................................1

1.1 研究背景与意义 ........................................................................................... 1

1.2 国内外研究现状 ........................................................................................... 1

1.2.1 搜索的研究现状 ....................................................................................... 2

1.2.2 全文检索的研究现状 ............................................................................... 2

1.3 论文研究内容 ............................................................................................... 4

1.4 论文组织结构 ............................................................................................... 4

第二章 相关技术介绍............................................................................6

2.1 全文检索 ....................................................................................................... 6

2.2 Lucene ........................................................................................................... 6

2.2.1 Lucene 简介 ............................................................................................... 6

2.2.2 Lucene 与数据库 ....................................................................................... 6

2.2.3 Lucene 的总体架构 ................................................................................... 9

2.2.4 Lucene 软件包分析 ................................................................................. 10

2.3 中文分词 ..................................................................................................... 11

2.3.1 中文分词的算法 ..................................................................................... 12

2.3.2 Lucene 中文分词器 ................................................................................. 12

2.4 SSH2 技术架构 ........................................................................................... 13

2.4.1 Struts2.................................................................................................... 14

2.4.2 Hibernate ............................................................................................... 16

2.4.3 Spring .................................................................................................... 16

2.5 本章小结 ..................................................................................................... 17

第三章 系统分析 ..................................................................................19

3.1 系统概述 ..................................................................................................... 19

3.1.1 系统应用背景分析 ................................................................................. 19

3.1.2 系统目标分析 ......................................................................................... 19

3.2 系统功能需求 ............................................................................................. 20

厦门大学博硕士论文摘要库

目录 

V

3.2.1 功能需求概述 ......................................................................................... 20

3.2.2 用例分析 ................................................................................................. 21

3.3 非功能性需求 ............................................................................................. 24

3.4 本章小结 ..................................................................................................... 25

第四章 系统设计 ..................................................................................26

4.1 系统设计原则 ............................................................................................. 26

4.2 系统架构设计 ............................................................................................. 26

4.2.1 总体架构设计 ......................................................................................... 27

4.2.2 功能模块设计 ......................................................................................... 27

4.2.3 流程分析 ................................................................................................. 28

4.3 系统详细设计 ............................................................................................. 30

4.3.1 文件处理模块 ......................................................................................... 30

4.3.2 索引模块 ................................................................................................. 30

4.3.3 分词模块 ................................................................................................. 32

4.3.4 信息检索模块 ......................................................................................... 32

4.4 核心数据库设计 ......................................................................................... 33

4.4.1 核心数据库表 ......................................................................................... 33

4.4.2 核心数据库表定义 ................................................................................. 33

4.5 本章小结 ..................................................................................................... 35

第五章 系统实现 ..................................................................................36

5.1 系统环境 ....................................................................................................... 36

5.2 系统实现类图 ............................................................................................... 37

5.3 系统各模块的实现 ....................................................................................... 38

5.3.1 文件处理模块实现 ................................................................................. 38

5.3.2 索引模块实现 ......................................................................................... 39

5.3.3 分词模块实现 ......................................................................................... 43

5.3.4 信息检索模块实现 ................................................................................. 43

5.4 系统界面 ....................................................................................................... 47

5.4.1 登录界面 ................................................................................................. 47

厦门大学博硕士论文摘要库

目录 

VI

5.4.2 检索主界面 ............................................................................................. 47

5.5 本章小结 ....................................................................................................... 48

第六章 总结与展望..............................................................................49

6.1 总结................................................................................................................ 49

6.2 展望................................................................................................................ 49

参考文献................................................................................................51

致 谢 ......................................................................................................53

厦门大学博硕士论文摘要库

Contents 

IX

Contents

Chapter 1 Introduction ...............................................................................1

1.1 Research Background and Significance.....................................................1

1.2 Research Status ............................................................................................2

1.2.1 Research Status...........................................................................................2

1.2.2 Full-text Retrieval Status............................................................................2

1.3 Research Contents........................................................................................4

1.4 Dissertations Organizational Structure .....................................................5

Chapter 2 Related Technology Introduction.........................................6

2.1 Full Text Retrieval........................................................................................6

2.2 Lucene ...........................................................................................................6

2.2.1 Lucene ........................................................................................................6

2.2.2 Lucene and Database..................................................................................7

2.2.3 Lucene Architecture..................................................................................10

2.2.4 Lucene oftware package ........................................................................... 11

2.3 Chinese Segmentation................................................................................ 11

2.3.1 Chinese segmentation algorithm ..............................................................12

2.3.2 Lucene Chinese Segmentation .................................................................12

2.4 SSH2............................................................................................................13

2.4.1 Struts2.......................................................................................................14

2.4.2 Hibernate ..................................................................................................16

2.4.3 Spring .......................................................................................................16

2.5 Summary.....................................................................................................18

Chapter 3 System Requerements .........................................................19

3.1 System Overview........................................................................................19

3.1.1 Backgroup ................................................................................................19

3.1.2 System Objects .........................................................................................19

3.2 System Functional Requirements .............................................................20

厦门大学博硕士论文摘要库

Contents 

X

3.2.1 Functional Requirements..........................................................................20

3.2.2 Use Case Analysis ....................................................................................21

3.3 Non-Functional Requirements..................................................................24

3.4 Summary.....................................................................................................25

Chapter 4 System Design ......................................................................26

4.1 System Design Principle ............................................................................26

4.2 System Architecture ...................................................................................27

4.2.1 System Architecture..................................................................................27

4.2.2 Function Module Design ..........................................................................28

4.2.3 Flow Design .............................................................................................28

4.3 System Design.............................................................................................30

4.3.1 File Processing Module ............................................................................30

4.3.2 Indexing Module ......................................................................................31

4.3.3 Segmentation Module...............................................................................32

4.3.4 Information Retrieval Module..................................................................32

4.4 Database Design .........................................................................................33

4.4.1 Code Tables ..............................................................................................33

4.4.2 Code Tables Design ..................................................................................33

4.5 Summary.....................................................................................................35

Chapter 5 System Implementation.......................................................36

5.1 System Development Environment .............................................................36

5.2 System Class ..................................................................................................37

5.3 Implementation of System Modules ............................................................38

5.3.1 File Processing Module Implement..........................................................38

5.3.2 Indexing Module Implement ....................................................................39

5.3.3 Segmentation Module Implement ............................................................41

5.3.4 Information Retrieval Module Implement................................................42

5.4 System Interface............................................................................................44

5.4.1 Login Interface .........................................................................................44

厦门大学博硕士论文摘要库

Contents 

XI

5.4.2 Search Interface ........................................................................................44

5.5 Summary........................................................................................................45

Chapter 6 Conclusions and Prosepects................................................46

6.1 Conclusions....................................................................................................46

6.2 Prosepects ......................................................................................................46

References .............................................................................................48

Acknowledgements ..............................................................................50

厦门大学博硕士论文摘要库

第一章  绪论 

1

第一章 绪论

1.1 研究背景与意义

随着信息化技术的飞速发展以及互联网技术在大众的普及,人们接触到的

信息量也出现了海量的增长,为了能使自己更快更好地完成对信息的查找,人

们使用了各种各样的方法。对信息的分类和组织就是其中的一种,但随着数量

的日益增长,仅仅通过对数据的分门别类已经不再是一种有效的方法。

在计算机技术和互联网络技术发展初期,由于人们接触的信息量较小,网

站和系统的数目也相对较少,人们可以很快的查找到所需要的信息,但伴随着

网络技术和存储技术的提高,人们所接触到的信息量已经出现爆炸性增加,要

想从其中找出所需的信息,无疑是大海捞针,为此,满足大众所需的信息搜索

技术应运而生。

随着我们教育体制改革的深入发展,高校的扩招规模的逐渐变大,高等教

育模式正由以前的精英教育逐步转变成为大众化教育,各大高校的在校学生人

数增长非常迅速,高校的事务越来越繁杂,必须充分运用信息化技术手段才能

满足高校日常管理工作的需要,经过多年的发展,各大高校的以往的纸质办公

模式已经逐步被无纸化办公模式所取代,高校的办公成本迅速降低,办公效率

快速提高。伴随着无纸化办公的迅速推广以及各个部门的深入应用,电子公文

的数量迅速增长,如何有效的管理越来越庞大的电子公文,如何让系统的使用

者方便快速的在众多公文中搜索到自己所需要的公文材料,显得越来越重要。

由于历史原因,现有的很多应用的系统也具备了全文检索的功能,但是,

大部分的系统都是基于数据库系统所设计,随着系统公文数量的增加,此种方

式的搜索速度已经变得异常缓慢,对数据库资源的也造成极大的浪费。因此,

在办公系统中提供一个高效的、符合用户使用要求的全文检索系统是十分必要

的。

厦门大学博硕士论文摘要库

基于 Lucene的全文检索系统的设计与实现 

2

1.2 国内外研究现状

1.2.1 搜索的研究现状

如今 ,信息搜索技术已成为达到获取有用信息的主要技术,由此互联网搜

索引擎应运而生,像谷歌、百度、腾讯等公司在基于互联网的搜索中在给人们

提供方便的同时公司本身也取得了巨大的成功。但是,目前的站内搜索引擎做

得还不是很好,部分系统和网站根本没有使用搜索引擎,或者只依赖于数据 SQL

查询等比较传统的方式去解决搜索问题,普遍存在搜索精度差,搜索时间长,

扩展性不够强等缺点,最严重的是并不能通过查询词语的意思或扩展含义真实

反映出用户的个性化需求,能够可以供给网站免费使用的站内搜索引擎就更少

了,这样就造成了有些网站或应用系统没有站内搜索功能或者搜索功能不好用

的局面,这对网站或应用系统本身的用户体验显然是不能令人满意的,所以站

内全文搜索引擎已成为一个网站或系统必不可少的功能之一。

1.2.2 全文检索的研究现状

全文搜索是指以全文信息检索为主要目标,使用户基于自然语言,而不是

基于外在特征来达到高级查询检索的手段,全文检索技术的出现,导致了信息

检索领域的一场革命,相对于传统的索引检索,全文检索技术提供了一个更新、

更强大的搜索功能,该技术的出现为基于信息技术的应用进行分析和筛选信息,

信息代理,信息安全控制提供更强手段。全文检索技术是现代信息检索技术的

重要分支,是搜索引擎的核心技术之一,也是一个处理非结构化数据的强大工

具,全文检索技术目前在发展成果才能实现,不仅能够实现信息检索之前的大

部分功能,而且还能够直接基于信息检索,信息资源的内容,实现了多角度的

利用。全文搜索的是文件内容表达式匹配的查询来获取信息和相关信息的核心

部分。一个很好的全文信息检索系统,不仅能够根据用户的意图输出查询结果,

更应该能够根据用户的兴趣和适应性以及智能匹配机制调整的特点,得到客户

满意的检索输出。

在当前国内电子公文系统中,全文检索功能的应用并不理想,很多系统或

内部网站并未提供该方面功能或者提供了并不满足用户使用的全文检索功能,

厦门大学博硕士论文摘要库

第一章  绪论 

3

有的系统通过使用商用系统获得支持,但花费较大。主要存在的现状包括:

1、系统完全不提供全文检索功能。这类系统直接选择忽视用户的需求,对

用户来说是极为不方便的。

2、系统的全文检索功能使用的是数据库本身的全文检索功能实现。这类系

统的全文检索主要是针对存储在数据库的结构化数据进行查询,包括通过公文

标题、关键词、作者等,严格来说并不是实际意义上的全文检索。

3、系统的全文检索功能使用数据库的关键字模糊查询实现。这类系统主要

是基于关系数据库特性、使用的是结构化查询语言 SQL 实现的全文检索,在查

询文本时,使用 SQL 的模糊查询语句“like %关键词%”,由于使用该种方式的

数据库查询必须顺序遍历所有字段信息,无法使用数据库的索引功能,所以,

这种方式在小数据量的情况下效率还可以接受,但如果数据量的规模变大时,

查询效率非常低,查询的过程对数据库的资源占有也非常明显,严重的时候会

影响使用数据库的其他模块。

4、系统的全文检索功能使用商用全文检索软件。由于国外的很多商用的全

文检索软件对中文的支持并不是很完善,该类系统主要还是采用国内的商用全

文检索系统,在国内比较著名的有北京拓尔思信息技术股份有限公司(原易宝

北信技术有限公司)的全文信息管理系统 TRS,拓尔思公司是中文全文检索的

创始者,在企业和互联网搜索、内容管理和文本挖掘等领域具有领先的技术和

产品,利用这样大型商用的全文检索软件提供的电子公文方面的全文检索功能

是可行的,但由于是商用软件,在很多应用上并不开放,最重要的商用软件费

用较高,所以并不是一个非常好的选择。

5、系统的全文检索功能使用开源的全文检索软件,根据本身需求进行定制

化开发。这类系统实现的方式就类似于本文所探讨的技术方式,主要的开源软

件包括 Sphinx 和 Lucene。其中,Sphinx 主要应用在 PHP 语言开发的系统中,

Lucene 主要应用在 JAVA 开发的语言中,两者各有优势。

在本文探讨的系统就是一个基于 Lucene 的全文检索系统,Lucene 是一个

基于 JAVA 语言的全文检索工具包,作为一个开源的应用,它主要是为应用程序

提供管理索引和搜索的功能的工具包,并不是完整的搜索产品,因此,它具有

非常好的扩展性,开发者很方便的使用它就能完成自己的实际需求,另外,由

厦门大学博硕士论文摘要库

基于 Lucene的全文检索系统的设计与实现 

4

于它是开源的,在应用的成本方面非常低。

1.3 论文研究内容

本文先论述全文检索、J2EE、Lucene 工具库等相关技术,从搜索引擎的原

理、组成、数据结构、工作流程、实际应用等方面做深入细致地研究分析,然

后探讨艺术学院办公系统项目的实际需求,以 Lucene 工具库为基础,设计和实

现一个全文检索站内搜索引擎系统,全文搜索引擎实现了包括文件处理模块、

索引模块、分词模块、信息检索模块等模块,为用户提供更为方便的搜索功能。

论文研究的主要内容包括:

1、对 Lucene 工具库的原理、架构、流程、以及各个类库的关系等方面进

行研究分析。

2、对系统开发中所使用的技术,包括 Struts2、Spring、Hibernate 等进行介

绍,让整个系统的架构思路清晰。

3、对中文分词技术进行研究分析,为系统选择符合自身需求的中文分词技

术提供技术支持。

4、对文本解析的技术进行研究分析,重点探讨如何使用 Tika 完成各种类

型文本数据的提取工作,为创建索引做好准备。

5、研究 Lucene 的索引更新策略,探讨如何实现近实时搜索。

6、研究 Lucene 的结果排序,让搜索返回的结果更符合用户的实际需求。

1.4 论文组织结构

本论文共包括六章:

第一章绪论,对系统研究的背景和意义,以及现状和存在问题,论文的研

究内容作了简单的介绍。

第二章相关技术介绍,对系统设计开发所使用的主流技术从理论和应用等

方面作详细介绍与比较,包括全文检索、Lucene 工具库、J2EE 架构等。

第三章系统分析,对整个系统的需求和功能做详细描述。

第四章系统设计,根据系统需求作详细的分析并对办公系统和全文检索系

厦门大学博硕士论文摘要库

第一章  绪论 

5

统的设计做详细介绍。

第五章系统实现,通过类图、界面截图等形式描述了系统各个模块的具体

实现。

第六章总结与展望,总结全文,展望今后的研究工作。

厦门大学博硕士论文摘要库

Degree papers are in the “Xiamen University Electronic Theses and Dissertations Database”. Fulltexts are available in the following ways: 1. If your library is a CALIS member libraries, please log on http://etd.calis.edu.cn/ and submitrequests online, or consult the interlibrary loan department in your library. 2. For users of non-CALIS member libraries, please mail to [email protected] for delivery details.

厦门大学博硕士论文摘要库