简介
在早期版本中,Luene并没有针对数值设置专属的字段类型,因此数值也是当做字符串存储的,所有字段都是字符串类型,倒排索引均由Trie-Tree数据结构实现。...考虑到数值类型的字段常用于范围比较,从Lucene 6.0版本开始,引入针对数值类型的新索引数据结构BKD-Tree,用于优化Lucene中范围查询的性能。...而在Segment Merge的过程中,多个KDB-Tree会进行合并,生成一个较大的KDB-Tree。
...这里采用常规的构建方式,以二维平面点(x,y)的集合A(2,3)、B(5,4)、C(9,6)、D(4,7)、E(8,1)、F(7,2)为例,假设叶子节点最多包含2个平面点,2阶KDB-Tree的构建过程如下...继续构建x=7节点的左子树,选择y作为切分维度,平面点在y维从小到大排序为A(2,3)、B(5,4)、D(4,7),取(0+3+1)/2=2个平面点的横坐标y=7用于切分,A(2,3)、B(5,4)挂在其左子树