摘 要
全文检索是现代信息检索技术的一个非常重要的分支,它是处理非结
构化数据的强大工具,也是搜索引擎的核心技术之一。本文对中文全文
检索的有关技术进行了较为深入的研究。在基于字表的全文索引方面,
本文提出了一种改进的倒排索引结构,同传统索引结构相比,更便于索
引的构建、维护、更新。本文的重点放在了全文检索技术的应用上,对
如何利用新技术、改善检索系统的结构、提高检索系统的性能和效率、
加快检速度、不断适应网络信息发展等方面做了重点研究。
全文检索是一种 IO 密集型的应用,以往的全文检索系统的开发多在
关系数据库的基础上进行。本文针对全文数据库的特点,深入讨论此法
弊端与不足,并提出了在文件系统上构建的解决方案。由于目前全文检
索系统的开发平台并不多见,本文介绍了一种全文检索引擎工具包一
Lucene,它功能强大,小巧精悍,便于嵌入各种应用。近年在世界各地
被广泛使用,诸如 IBM 等公司都使用其核心代码。作为一个开源软件,
它为我们学习搜索引擎的核心技术提供了绝佳的机会,对其剖析研究、
进行二次开发,是一件很有意义的事情。
在应用方面,本文主要工作是本校学位论文全文数据库的设计与实
现。
关键字:全文检索 倒排文件 Lucene 全文数据库 自动分词
THE RESEARCH AND IMPLEMENTATION
OF FULL-TEXT RETRIEVALSYSTEM
(ABSTRACT)
Full-text retrieval is an important information retrieval technology. It is a
powerful tool fordealing with nonstructural data, and is one of the key
technologies of the search engine. This paper deeply research on Chinese full-
text retrieval technology. In the filed of full-text index based on word inverted
table, a improved word-based Chinese inverted index structure is proposed
which has a better performance than traditional approaches, and convenient for
constructing, maintaining and updating index. According. to its characteristic,
we design its corresponding optimized search method. Analysis shows that
better dynamic performance and high indexing speed is possible using this
structure. This paper pays more attention in application of full-text retrieval
technologies. How to use new technique, optimize the structure of retrieval
system, improve performance and efficiency, quicken search speed and adapt
the development of current web is also discussed in this paper.
Full-text retrieval is an I/O intensive application.. Its previous
developments are carried on the basis of relation database. This paper deeply
discusses the abuse and deficiency of this mode according to its characteristic.
Because the development platform of full-text retrieval is absent currently,
Lucene, a full-text search engine toolkit, is introduced into the paper. It has
powerful performance. and its body is cabinet, capable and vigorous. this
convenient for it embedded applications. At present, Lucene is employed
world abroad, so that many professional companies such as IBM also use its
core code. As an open source code soft, Lucene offer a superexcellent chance
to study search engine key technology. It is worthful to take a parse. research
and carry second development to it.
In the application aspect, this paper work mostly in the design and
implement of the degree dissertation full-text database in university.
KEY WORDS: Full-text,Inverted File, Lucene,Full-text Database
Divided Syncopation
目 录
摘 要................................................................................................1
THE RESEARCH AND IMPLEMENTATION..............................1
OF FULL-TEXT RETRIEVALSYSTEM.......................................1
(ABSTRACT)............................................................................1
一、全文检索技术简介.................................................................1
1.1 论文研究背景..........................................................................................1
1.2 什么是全文检索......................................................................................1
1.3 全文检索与关系数据库..........................................................................1
1.4 全文检索需要解决的问题......................................................................2
二、建立索引库.............................................................................3
2.1 索引文件分类..........................................................................................3
2.1.1、顺排档结构.....................................................................................3
2.1.2、倒排档结构.....................................................................................3
2.2 倒排索引压缩..........................................................................................4
2.2.1 倒排索引压缩初步实现....................................................................4
2.2.2 动态文本集的倒排索引压缩方案....................................................5
2.2.3 Lucene 压缩技术................................................................................6
2.3 索引增量更新..........................................................................................7
2.3.1 利用 B 树实现倒排索引的更新........................................................7
2.3.2 Dual-Structure 索引结构....................................................................7
2.3.3 Lucene 索引过程优化........................................................................8
三、 中文分词研究........................................................................8
3.1 什么是中文分词......................................................................................8
3.2 为什么需要中文分词..............................................................................9
3.3 中文分词技术........................................................................................10
1
3.3.1、基于字符串匹配的分词方法.......................................................10
3.3.2 基于理解的分词方法......................................................................12
3.3.3 基于统计的分词方法......................................................................12
3.4 分词中的难题........................................................................................13
3.4.1 歧义识别..........................................................................................13
3.4.2 新词识别..........................................................................................14
四、索引数据库的搜索...............................................................14
4.1 词库查找方法........................................................................................14
4.2 LUCENE 搜索算法..................................................................................15
4.3 搜索过程优化........................................................................................16
参考文献.......................................................................................17
致 谢..............................................................................................18
2
一、全文检索技术简介
1.1 论文研究背景
信息时代产生了大量数字信息, 而这些信息大致可分为两类:结构化
数据和非结构化数据,结构化数据指的是诸如企业财务帐目和生产数据、
学生的分数数据等等,非结构化数据的则是一些文本数据、图象声音等
多媒体数据等等。据统计,非结构化数据占有整个信息量的 80%以上。
对于结构化数据,用 RDBMS(关系数据库管理系统)技术来管理
是目前最好的一种方式。但是由于 RDBMS 自身底层结构的缘故使得它
管理大量非结构化数据显得有些先天不足,特别是查询这些海量非结构
化数据的速度较慢。而通过全文检索技术就能高效地管理这些非结构化
数据。
国内外对全文检索的研究方兴未艾,己有一些较成熟的商用产品相
继问世。中文全文检索与英文检索相比,由于自然语言体系不同,索引
机制也不完全相同。英文以词为单位建索引,与字母无关,而中文以字
为最小单位。再者,英文的分词以空格和标点为分界符,而汉字的分词
往往依赖于词库。因而中文全文检索与英文实现相比困难些。不得不承
认目前国内的研究水平与国际上还有较大差距,坐等国外成果,然后加
以移植改造的老路是行不通的,因此在国内进行全文检索的研究非常必
要。
1.2 什么是全文检索
全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一
个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询
时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给
用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。
全文检索是指以文本为检索对象,允许用户以自然语言根据资料内
容而不仅是外在特征来实现信息检索的手段。全面、准确和快速是衡量
全文检索系统的关键指标。全文检索不仅可以实现对数据资料的外部特
征的检索,诸如标题、作者、摘要、附录等,而且还能直接根据数据资
料的内容进行检索,实现了支持多角度、多侧面地综台利用信息资源。
总之,全文检索技术是现代信息检索的一项重要技术。
1.3 全文检索与关系数据库
全文检索提出基于文件系统的全文数据库,使用文件系统存储文档
1