基于Lucene的倒排索引性能的研究

时间:2022-07-18 07:41:32

基于Lucene的倒排索引性能的研究

摘 要:倒排索引技术是现代搜索引擎的核心技术之一,索引技术的好坏直接影响搜索引擎的性能。Lucene是一个优秀的全文检索引擎架构,采用高度优化的倒排索引结构,可以方便的嵌入到各种应用程序中。在深入分析和研究Lucene索引机制的基础上,通过实验发现,与传统的字符串匹配查找的性能相比,使用倒排索引的Lucene更快捷、更准确的实现全文检索。

关键词:倒排索引;搜索引擎;Lucene;性能

Abstract:Inverted index technology is one of core technologies of search engine,the quality of index technology has a direct influence to the performance of search engine.Lucene, with highly optimized inverted index structure,is an excellent full-text search engine framework, can be easily embedded in various applications.Based on deeply analysis and research of the index mechanism of Lucene, the experiment discovers, compared with the performance of the traditional string matching search, Lucene with inverted index can implement full-text retrieval more quickly and more accurately.

Key words:Inverted Index;Search Engine;Lucene;Performance

随着互联网的普及以及数字信息的爆炸式增长,网络信息资源数量以几何级数倍增,面对日益产生的海量数据,其异构性、分布性和动态性,对信息检索的研究不断提出新的挑战。为了在海量的数据中迅速而全面地找到所需要的信息,搜索引擎由此产生了。

1 Lucene及相关分析

1.1 Lucene概述

Lucene是Apache软件基金会jakarta项目组的一个子项目,是一个优秀的开源全文搜索引擎工具包。它提供了丰富的API函数,可以方便地创建索引,嵌入到各种应用中实现全文检索。

1.2 建立索引的过程

基于Lucene的索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。建立索引有三个步骤:

⑴提取文本。为了使用Lucene对文档数据建立索引,首先要将该文档转换为Lucene可以处理的类型。

⑵构建Document。Document类是用来描述文档的。

⑶分析。在文档被索引之前,首先要对文档内容进行分词处理,由Analyzer类处理。

在完成上述步骤后,就可以对索引文件进行全文检索了。

2 实验设计

为了测试倒排索引的搜索性能,将基于Lucene建立倒排索引的全文检索和传统的基于顺序扫描的字符串匹配查找作对比。首先把欲处理的文档分割成若干小的文档,字符串查找是直接将要搜索的文件加载到内存的String中,利用String提供的API查找关键词,而Lucene则先将小文档预处理成索引文件,然后对索引文件进行查找。

3 实验分析

实验分为两部分。第一部分,使用TXT电子书作为测试数据,文档集含有50个文件共5MB。在这个数据集上,对上述两种检索方式分别进行不少于20次的随机检索,从中抽取若干关键词进行测试,测试后的数据如下表1所示。第二部分,同样使用TXT电子书作为测试数据,逐步扩大测试文档的规模,使用相同的关键字进行若干次随机检索,测试数据如下表2所示。

从表1中可以看出,基于Lucene倒排索引的全文检索的在检索时间上远远优于基于字符串查找的顺序查找法。而对于查准率和查全率,两种检索方式性能接近。从表2中可以看出,当检索的文件不大时,两种检索方式的检索时间相当,随着数据的增长,顺序查找法检索时间的增长幅度远大于基于Lucene检索时间的增长。

4 结论

本文探讨了基于Lucene的倒排索引模式,通过实验分析了倒排索引的优良性能。倒排索引技术能加快检索的速度,基于现代检索系统对检索时间效率要求较高,要对大数据进行检索,建立倒排索引的全文检索,则无疑成为最好的选择。

[参考文献]

[1]李晓明,闰宏飞,王继民.搜索引擎----原理、技术和系统[M].北京:科学出版社,2006.

[2]高斯帕那,哈特赫(著),牛长流,肖(译).Lucene IN ACTION中文版[M].2版,北京:电子工业出版社,2011.6.

[3]邱哲,符滔滔,王学松.开发自己的搜索引擎Lucene+Heritrix.[M].2版,北京:人民邮电出版社,2010.

上一篇:FTTX应用及维护研究 下一篇:排气制动引起的发动机故障分析