欢迎来到天天文库
浏览记录
ID:20735139
大小:51.50 KB
页数:9页
时间:2018-10-15
《基于lucene的企业搜索引擎设计与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Lucene的企业搜索引擎设计与实现摘要:现代企业信息化水平日益提高,长期积累下来的大量信息往往形态各异,且分散于企业网络或者员工电脑的各个角落,导致企业人员找到自己需要的数据变得十分困难必须借助搜索引擎来解决这一难题。通过深入分析,研究Lucene的优点及其系统结构、数据流和索引结构,最后以Lucene为核心,结合ICTCLAS分词系统,成功构建了一个企业搜索引擎系统,实现了对PDF、Word、HTML这些非结构化数据的全文检索。关键词:搜索引擎;Lucene;企业搜索;中文分词1引言伴随着企业信息化进程的加快,信息搜索与查询技术己经成为影响企业综合效率的关键因
2、素。许多企业己经建立了自己的内部网络,企业的规模越来越大,积累的信息库也越来越多。传统的信息检索方式,要耗费大量的人力和物力,更重要的是由于信息流通不畅,信息得不到充分的利用,资料的查询和利用过程常常受某些因素的影响而造成人力和物力的浪费,甚至因无法及时准确地得到正确的资料而失去发展的机会。于是,使用搜索引擎来迅速准确地获取企业内部的信息,自然而然成为了一个合理的选择。2搜索引擎搜索引擎是随着web信息的迅速增加,从1994年开始逐渐发展起来的技术。实际上,搜索引擎是一款特别的软件系统,能够从互联网上自动搜集信息,并为用户提供查询服务。搜索引擎对原始文档进行了一系列的
3、整理和处理。用户的查询结果是搜索引擎按照某种规则计算获得的。互联网搜索引擎通常由5个主要功能模块构成,包括信息抓取、内容分析、索引建立、检索结果排序和检索工具与接口。主要功能模块结合其他信息处理和信息检索技术,组成整个搜索引擎。3Lucene简介Lucene是Apache软件基金会Jakarta项目组的成员项目,是一个开放源代码的全文检索引擎工具包。Lucene目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中添加全文检索的功能,或者是以此为基础建立起完善的全文检索系统。Lucene是一个全文检索引擎,其系统结构具有强烈的面向对象特征。首先是定义了一个与
4、平台无关的索引文件格式,其次通过抽象将系统的核心组成部分设计为抽象类,具体的平台实现部分设计为抽象类的实现,此外与具体平台相关的部分比如文件存储也封装为类,经过层层的面向对象式的处理,最终迗成了一个低耦合高效率,容易二次开发的检索引擎系统。图1为系统结构与源代码组织图4企业搜索引擎设计与实现现代企业信息化水平迅速提高,企业信息管理目前已经度过了最初的纯数据和文档备份阶段。企业数据以每年200%的速度增长,其中约80%的数据以文本文件、邮件等非结构化数据形式存放在企业内计算机系统中的各个角落。面对这些,当万维网搜索开始束手无策的时候,无论是公司高层还是基层员工都在憧憬有
5、自己的搜索工具,这就导致了企业搜索系统的出现。企业搜索引擎是指企业、政府、金融、教育、科研、媒体、医疗、军队、安全部门内部网络的搜索系统。企业搜索引擎系统结构企业搜索引擎依靠企业的硬件平台和网络环境,针对企业的非结构化文档,提供整体检索服务方案。其主要流程包括非结构化文档解析、建立索引,进行检索并显示结果,如2所示:本系统的开发环境为:Windows7操作系统,环境,,。非结构化文档解析HTML网页解析HTML是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言。它是世界上最广泛使用的信息载体之一,企业内保存了大量的HTML网页,所以对HTML网页进行解
6、析是企业搜索引擎开发中不可避免的问题。本文使用开源项目HTMLParser来实现HTML网页的解析,版本为。其在分析处理中通过一系列的Tag对象,形成网页的树结构。voidParserHtmlTextpublicstaticthrowsParserException{Parserparser=newParser;眷TextExtractingVisitorvisitor=newTextExtractingVisitor;NodeFiltertextFilter=newNodeClassFilter;NodeListnodes=;眷Stringline=;PDF文档解析
7、PDF的全称是PortableDocumentFormat,它是Adobe公司开发的电子文件格式。这种文件格式与操作系统平台无关,可以在Windows、Unix或MacOS等操作系统上通用[8]。常见的PDF文本抽取工具有PDFBox、xpdf、gunjpdf等,其中最常用的就是PDFBox,本文使用版本。publicStringGetTextFromPdfthrowsException{FilEinputStreaminstream=newFileInputStrearn;PDFParserparser=newPDFParser;PDFDocume
此文档下载收益归作者所有