欢迎来到天天文库
浏览记录
ID:21834123
大小:235.40 KB
页数:10页
时间:2018-10-25
《基于lucene搜索引擎的研究与改进》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Lucene搜索引擎的研究与改进摘要Lucene是目前已经儿年,最受欢迎的免费Java的全文检索库。首先,本文分析了珠光体系结构、索引机制、搜索机制;其次,它研允排序技术和如何调整索引的性能;最后,文章提出丫新的检索排序算法。关键字:索引;搜索;条款;因子;maxMergeDocs;满意程度;:新的算法一、引言Lucene是优秀的全文搜索引擎工具软件包和一个成熟的、免费的、开源的项目,在Java中实现。然而,它不是一个完整的全文搜索引擎,而是全文搜索引擎的体系结构。Lucene提供完整的搜索引擎,完整的索引引擎,部分文本分析引擎(两种西方语言:英语和德
2、语)[1]。它是项0Apache雅加达家庭成员。木文的结构如下:第二部分我们分析Lucene系统结构;第三部分研究Lucene运行机制(索引和搜索);第四部分讨论如何调整索引的性能;第五部分我们对分类技术的研宄,提出新的检索排序算法。在第六部分我们进行有关的新算法的可行性分析;最后在第七部分得出结论。二、LUCENE系统结构作为一个优秀的全文搜索引擎,Lucene系统结构具有强烈的面向对象特征。首先,Lucene系统定义一个索引文档格式已无关平台:第二,该系统的核心部件R在抽象类,和混凝土平台实现设计用来抽象类实现;最后,它穿过层而向对象处理,实现一种低耦
3、合,高效率,便于二次开发的搜索引擎系统。Lucene体系结构如图1所示:Lucene査词器<Lwenc分析器.4-*文件索*索引,指针、9LuceneyjjpLucene库一索引核心,•LuceneJtS*基本的封装结构<■,图1Lucene索引结构从图1,我们可以看到,Lucene系统由3个主要部分,即基本的封装结构、索引核心、外部接口组成。索引核心也是系统的关键所在。Lucene系统所有源代码都划分成7个模块(在Java包来表示),并且每包完成特定的功能。其核心类软件包是组织Apache.Lucene.analysis,org.apachelucene
4、.index,org.apachelucene.search。每个包的功能,如表1:表lLuccnc各包功能包功能org.apachelucene.search搜索界面org.apachelucene.index索引接口org.apache,lucene.analysis语言分析器org.apache,lucene.queryParser查询分析器org.apache,lucene.document文件存储器org.apache,lucene.store底层I/O存储结构org.apache,lucene.util一些公共数据结构三、LUCENE运行机制L
5、ucene主要包括两个功能:•建立索引数据库和索引纯文木;•根据用户的查询,搜索索引已经建立的数据库。A.索引机制分度机构是Lucene系统的核心部分。似乎可以简单地完成此操作的过程屮哪些索引文档可能只能调用LuceneAPT的几种方法。然而,它实际上隐藏巧妙而复杂的索引过程背后的简单过程。图2显示了索引进程:图2索引进程从图2,我们可能会看到,索引过程分为预处理、分析文本、索引存储三个主要的阶段。1)预处理因为Lucene只可以纯文本文档编制索引,索引数据之前,索引的数据必须转换成文木字符流是Lucene可以处理的格式。上述过程称为预处理,即预处理用于从
6、非文本文档中提取文本信息。在那之后,提取出来的数据用于创建卢塞恩的文档和相应的字段。2)分析文本创建字段的文档之后,Lucene不应直接进行索引操作,而是分析数据。分析,在Luccrw中,是指过程的字段文本转换其最基本的索引表示形式、条款。这些术语用來确定文件的匹配,查询搜索期间。分析仪通过执行任意数量的操作上,可将文本包括分词、丢弃标点、从用小写字母的字符移除口音(也称为正常化),删除常用词、减词到根窗体(词干),或改变词的基木形式(归类)成。这一过程也称为标记,和大块的文本从文本流中救出被称为令牌。令牌,结合其相关联的字段的名称,是术语。3)索引存储后
7、建立条件。Lucene将调用达到多少的addDocument(文档)方法,并将数据存储到索引数据库倒排的索引的数据结构。索引的代码的示例如下所示:publicclassIndexWcb{String口ur1s={“URL1”,“URL2”};String[]contents={“webl”,“web2”};Stringindexpath;//indexpath;publicvoidsetup()throwsIOException{//indexstoring;indexpath=“D:/storepath”;addDocuments(indexpath);
8、}publicvoidaddDocuments(stringdir
此文档下载收益归作者所有