在使用和阅读lucene源代码时,发现为了提高查找的性能,Lucene在很多地方采取的跳跃表的数据结构。
跳跃表(Skip List)是如图的一种数据结构,有以下几个基本特征:
- 元素是按顺序排列的,在Lucene中,或是按字典顺序排列,或是按从小到大顺序排列。
- 跳跃是有间隔的(Interval),也即每次跳跃的元素数,间隔是事先配置好的,如图跳跃表的间隔为3。
- 跳跃表是由层次的(level),每一层的每隔指定间隔的元素构成上一层,如图跳跃表共有2层。
看了redisbook中也有关于该数据结构的详细介绍
http://www.redisbook.com/en/latest/internal-datastruct/skiplist.html
Skip List(跳跃表)原理详解与实现
http://dsqiu.iteye.com/blog/1705530