计算机技术与发展第21卷 第2期.2Vo.l21 No
基于Lucene的分布式并行索引
唐华姣,何友全,徐小乐,徐 澄
2.重庆交通大学管理学院,重庆400074)
摘 要:索引技术是搜索引擎的核心技术之一,索引技术的好坏直接影响到搜索引擎的查准率以及对用户的响应速度。Lucene是一个优秀的全文检索引擎架构,采用高度优化的倒排索引结构并支持增量索引。但在实际应用Lucene时存在一个值得关注的问题:随着被索引文件的增多,索引时间成线性增长,导致建索引的过程会影响搜索体验;在搜索引擎应用中,当索引文件量达到一定等级时,搜索引擎就遇到性能瓶颈。在深入分析和研究Lucene索引机制的基础上,采用以内存为缓冲区建索引文件的分布式并行索引技术形成了一个可扩展的搜索引擎解决方案,极大地缓解了建索引给搜索带来的瓶颈问题。
关键词:索引技术;Lucene;搜索引擎;分布式并行索引
中图分类号:TP311 文献标识码:A 文章编号:1673-629X(2011)02-0123-04
1
1
1
2
(1.重庆交通大学信息科学与工程学院,重庆400074;
DistributedParallelIndexBasedonLucene
TANGHua-jiao,HEYou-quan,XUXiao-le,XUCheng
1
1
1
2
(rmationScience&EngineeringDepartmen,tChongqingJiaotongUniversity,Chongqing400074,China;
2.DepartmentofManagement,ChongqingJiaotongUniversity,Chongqing400074,China)
Abstract:Indextechnologyisoneofthecoretechnologiesofsearchengine.Thequalityoftheindextechnologyhasadirectinfluencetotheprecisionofsearchengineandtherespondingspeedtousers.Lucene,withhighlyoptimizedinvertedindexstructureandincrementalindexsuppor,tisanexcellentfull-textsearchengineframework.However,whenapplyLucenetopractice,wecandiscoveraproblemdeservesconcern:withthelinearlygrowthofindexingtimewhichresultsfromtheincreaseofthenumberofindexeddocuments,theprocessofbuildingindexwillinevitablyaffectthesearchexperience.Inthesearchengineapplication,whenthenumberofindexeddoc umentsreachesacertainleve,lthesearchenginewillexperienceperformancebottleneck.Basedondeeplyanalysisandresearchofthein dexmechanismofLucene,proposesascalablesearchenginesolutionbyadoptingmemory-bufferdistributedparallelindextechnique.Thissolutionhasgreatlyrelievedthebottleneckproblemofsearchengineduetoindexbuilding.Keywords:indextechnology;Lucene;searchengine;distributedparallelindex
0 引 言
随着互联网技术的迅速发展,网络上的资源日新月异、内容丰富多彩,但在如此多的信息中如何快速有效的找到用户有用的信息成为早期网民头痛的问题。在这种情况下,搜索引擎便产生了。据CNNIC(中国互联网网络信息中心)第十四次互联网调查显示,搜索以71.9%的绝对优势成为用户从互联网上获得信息的主要方式。几乎在全球所有的调查中,搜索引擎都是互联网上使用程度仅次于电子邮箱的服务。因
收稿日期:2010-06-28;修回日期:2010-09-05
基金项目:重庆市科技攻关项目(CSTC,2010AC6074);重庆交通大学研究生教育创新基金资助项目;重庆交通大学实验教学改革与研究基金资助项目(SYJ200922)
作者简介:唐华姣(1986-),女,湖南衡阳人,硕士,研究方向为数据,此,有必要对搜索引擎进行研究。
索引结构是搜索引擎的核心,直接影响着搜索引擎的查准率以及对用户的响应速度。
每当提起索引,让人首先想到的可能是数据库系统。但是数据库的索引结构相对简单,不能满足搜索引擎的特殊要求:首先,搜索引擎面对的是海量数据,数据库系统难以对这些数据进行有效的管理。其次,搜索引擎使用的数据操作相对简单并具有特定的格式,可以针对这些应用设计出简单高效的应用程序。由于对搜索引擎而言最重要的是如何快速有效地响应大量的用户检索需求,因此在设计搜索引擎时,应尽可能地将大运算量的工作在建立索引时完成,而在检索程序的设计上应该分秒必争,提高效率。所以有必要对文档建立高效的索引库
[1,2]
。