论文部分内容阅读
【摘 要】为满足办公室环境下文档资料全文检索的需求,本文基于Lucene API研究并实现了一个面向海量文档数据的全文检索系统,该系统能实现对DOC、XLS和PDF等各种格式文档资料的全文检索。系统在实际办公室资料检索应用的结果说明系统具有良好检索性能,有较高的查全率和查准率,能够满足办公室人员快速检索文档资料的需求。通过扩展,系统可以适应C/S和B/S这两种应用需求,有广阔的应用前景。
【关键词】全文检索;索引;检索;办公室;文档
1.引言
目前,各企事业单位行政办公室都积累有大量的文档资料,这些中文档有Word文档(后缀为doc)、Excel文档(后缀为xls)和Pdf文档(后缀为pdf)等。通常查找这些文件时都是通过文件名查找,如果不记得文件名后则只能挨个目录查看所需要的文件,这往往是一个极其费时费力的过程。要解决这个问题就需要引入文档的全文检索功能,让用户能根据文档内容来进行检索。本文基于Lucene API研究并实现了一个面向海量文档资料的全文检索系统,该系统能实现对办公室各种格式文档的全文检索。
2.Lucene简介
Lucene是一个开源的基于Java全文信息检索工具包,提供了很多通用的用于索引和检索的API;它主要为应用程序提供索引和搜索功能。Lucene提供一个通用的结构(Document对象)来接受索引的输入,因此可以非常灵活的适应各种应用,输人的数据源可以是结构化和非结构化数据,如Word、Excel和PDF等文档,只要前端有合适的转换器从数据源提取出纯文本,然后再将这些文本转换成通用的Document对象就可以索引为文本磁盘文件了。基于这些原因,所以Lucene很适合于用来构建异构数据源环境下的全文检索系统[1]。
3.系统设计与实现
3.1 系统总体架构
文档资料全文检索系统可以针对多种格式文档资料进行综合搜索,便于用户快速检索信息并协助其它信息系统的应用。此全文检索系统的总体架构如图1所示[2]:
图1 系统总体结构图
图1中,文档资料库保存的是不同格式的文档资料,这些资料需要经过文本分析引擎分别提取纯文本后并进行索引,将索引信息存入索引库内以供检索使用。当用户输入查询语句后,文本分析引擎会对查询语句进行分析,查询引擎利用查询语句的分析结果检索索引库,并对命中文档按一定规则进行排序后反馈给用户。
3.2 索引的设计与实现
Lucene默认只能分析并索引HTML和TXT文档,本文首先利用POI和PDFBox等开源工具抽取DOC、XLS和PDF文档中的文本。然后利用Lucene索引这些提取出来的文本,将提取的文本封装为Lucene的Document对象中一个字段。当然还可以提取文档的其他信息,如文档路径、文件名和最后修改时间等,再将这些信息作为辅助字段添加到Lucene的Document对象。最终不同格式的文档就被封装为通用Document对象,这些Document对象可以写入索引文件供以后全文检索使用[3][4],文本分析引擎的流程图如图2所示。
图2 文本分析流程图
3.3 检索的实现
文档检索使用流程比较简单,用户在输入检索关键词后,系统通过查找Lucene索引文本时创建的本地索引文件,快速地将满足条件的结果反馈给用户[5][6]。文本检索的流程图如图3所示。
检索结果中显示的是符合检索条件的文档的标题、摘要和文档格式,用户如果想查看某一篇文档的具体内容,只需要点击该文档的标题即可打开相应的文档进行浏览。如果用户输入的是一个句子或者是多个检索词的组合,那么会先对句子或检索词组合进行分词,然后将查询结果进行布尔运算后返回给用户。
图3 文本检索流程图
4.总结与展望
本全文检索系统在J2EE环境下实现,并作为办公室资料检索系统投入试用,取得了一定的应用成果。系统在实际资料检索应用的结果说明系统具有良好检索性能,有较高的查全率和查准率,能够满足办公室环境下快速检索资料的需求[7]。
参考文献:
[1]吴代文.基于Lucene的全文检索应用研究[J].微计算机应用,2011,02:62-65.
[2]吴代文.基于Lucene站内全文检索系统的设计与实现[J].现代电子技术,2011,03(6):42-44.
[3]谭文堂,贺明科,李阜.基于Lucene.Net的分布式全文检索系统[J].计算机应用与软件,2009,26(9):142-145.
[4]王志嘉,薛质.一种基于Lucene的中文分词的设计与测试[J].信息技术,2010,12(12):50-53.
[5]郑廷,郑诚.基于Lucene的语义检索系统[J].计算机工程,2008,08(16):92-94.
[6]郎小伟,王申康.基于Lucene的全文检索系统研究与开发[J].计算机工程,2006,02(36):94-96.
[7]励子闰,余青松,陈胜东.基于全文检索引擎的信息检索技术的应用研究[J].计算机与数字工程,2008,9:81-85
资助项目:基于Lucene的二次检索系统应用研究(编号:13YKP001)。
作者简介:吴代文(1979—),湖南衡阳人,硕士,讲师,主要研究方向:远程教育、教育信息检索。
【关键词】全文检索;索引;检索;办公室;文档
1.引言
目前,各企事业单位行政办公室都积累有大量的文档资料,这些中文档有Word文档(后缀为doc)、Excel文档(后缀为xls)和Pdf文档(后缀为pdf)等。通常查找这些文件时都是通过文件名查找,如果不记得文件名后则只能挨个目录查看所需要的文件,这往往是一个极其费时费力的过程。要解决这个问题就需要引入文档的全文检索功能,让用户能根据文档内容来进行检索。本文基于Lucene API研究并实现了一个面向海量文档资料的全文检索系统,该系统能实现对办公室各种格式文档的全文检索。
2.Lucene简介
Lucene是一个开源的基于Java全文信息检索工具包,提供了很多通用的用于索引和检索的API;它主要为应用程序提供索引和搜索功能。Lucene提供一个通用的结构(Document对象)来接受索引的输入,因此可以非常灵活的适应各种应用,输人的数据源可以是结构化和非结构化数据,如Word、Excel和PDF等文档,只要前端有合适的转换器从数据源提取出纯文本,然后再将这些文本转换成通用的Document对象就可以索引为文本磁盘文件了。基于这些原因,所以Lucene很适合于用来构建异构数据源环境下的全文检索系统[1]。
3.系统设计与实现
3.1 系统总体架构
文档资料全文检索系统可以针对多种格式文档资料进行综合搜索,便于用户快速检索信息并协助其它信息系统的应用。此全文检索系统的总体架构如图1所示[2]:
图1 系统总体结构图
图1中,文档资料库保存的是不同格式的文档资料,这些资料需要经过文本分析引擎分别提取纯文本后并进行索引,将索引信息存入索引库内以供检索使用。当用户输入查询语句后,文本分析引擎会对查询语句进行分析,查询引擎利用查询语句的分析结果检索索引库,并对命中文档按一定规则进行排序后反馈给用户。
3.2 索引的设计与实现
Lucene默认只能分析并索引HTML和TXT文档,本文首先利用POI和PDFBox等开源工具抽取DOC、XLS和PDF文档中的文本。然后利用Lucene索引这些提取出来的文本,将提取的文本封装为Lucene的Document对象中一个字段。当然还可以提取文档的其他信息,如文档路径、文件名和最后修改时间等,再将这些信息作为辅助字段添加到Lucene的Document对象。最终不同格式的文档就被封装为通用Document对象,这些Document对象可以写入索引文件供以后全文检索使用[3][4],文本分析引擎的流程图如图2所示。
图2 文本分析流程图
3.3 检索的实现
文档检索使用流程比较简单,用户在输入检索关键词后,系统通过查找Lucene索引文本时创建的本地索引文件,快速地将满足条件的结果反馈给用户[5][6]。文本检索的流程图如图3所示。
检索结果中显示的是符合检索条件的文档的标题、摘要和文档格式,用户如果想查看某一篇文档的具体内容,只需要点击该文档的标题即可打开相应的文档进行浏览。如果用户输入的是一个句子或者是多个检索词的组合,那么会先对句子或检索词组合进行分词,然后将查询结果进行布尔运算后返回给用户。
图3 文本检索流程图
4.总结与展望
本全文检索系统在J2EE环境下实现,并作为办公室资料检索系统投入试用,取得了一定的应用成果。系统在实际资料检索应用的结果说明系统具有良好检索性能,有较高的查全率和查准率,能够满足办公室环境下快速检索资料的需求[7]。
参考文献:
[1]吴代文.基于Lucene的全文检索应用研究[J].微计算机应用,2011,02:62-65.
[2]吴代文.基于Lucene站内全文检索系统的设计与实现[J].现代电子技术,2011,03(6):42-44.
[3]谭文堂,贺明科,李阜.基于Lucene.Net的分布式全文检索系统[J].计算机应用与软件,2009,26(9):142-145.
[4]王志嘉,薛质.一种基于Lucene的中文分词的设计与测试[J].信息技术,2010,12(12):50-53.
[5]郑廷,郑诚.基于Lucene的语义检索系统[J].计算机工程,2008,08(16):92-94.
[6]郎小伟,王申康.基于Lucene的全文检索系统研究与开发[J].计算机工程,2006,02(36):94-96.
[7]励子闰,余青松,陈胜东.基于全文检索引擎的信息检索技术的应用研究[J].计算机与数字工程,2008,9:81-85
资助项目:基于Lucene的二次检索系统应用研究(编号:13YKP001)。
作者简介:吴代文(1979—),湖南衡阳人,硕士,讲师,主要研究方向:远程教育、教育信息检索。