今天做了对lucene最新版(Lucene4.3)的性能测试,主要与3.5进行对比。
我的工作环境:windows xp 32位, 内存4G,可用3G,eclipse indingo。
测试数据为json数据,比较小,索引时均为字符串形式。
json数据,一个元数据,格式如下:
{ TURNOVER_INC=526289,PRICE=13.49, NAME=鹏博士, PRICE_PRE=13.49, PERCENT=0.02197, SYMBOL=600804, VOLUME_INC=39000, DATE=2013-07-12 14:15:37, TRADE_TYPE=-1, RN=1, CODE=0600804 }
说明:
a、10万条,即是对此数据重复进行了十万次索引。
b、索引做了最简单的处理,全部保存为字符串,并且没有分词。
c、略去了读取磁盘文件时间,for循环,内存操作。
结果如下:
1、索引的数据量递增,lucene建立索引耗时也越多,但是看曲线,明显lucene3.5更高效一些。
2、对建立好的索引持久化到硬盘时间进行了统计,lucene3.5的效率更高一些。
3、对索引数据进行全量查询,占用内存4.3明显要高,说明其内部肯定有更复杂的结构,占用了一定的内存。
4、全量查询,3.5的查询速度竟然至少是4.3的8倍,这个有点意料之外了。
5、设置总数据量为100万,分别对不同数据位置的100条数据进行了查询操作,结果如下图所示,lucene3.5在查询中段数据时耗时最长,而lucene4.3始终维持在一个较低水平,呈线性增长趋势。
6、对多条件查询(我这里设置了两个条件,都是与)随时间变化曲线,在多条件查询时3.5的效率也是明显优于4.3。
现在只对lucene最基本的功能做了性能测试,但是还未测试其新功能,还需要进一步测试。