如何开始做网站,免费医院网页模板,wordpress 加载数据库表格也卖弄,中国工程建设企业协会网站BKD 树#xff08;Block KD-Tree#xff09;是 Lucene 用来存储和快速查询 **多维数值型数据** 的一种磁盘友好型数据结构#xff0c;可以把它想成#xff1a; **“把 KD-Tree 分块压缩后落到磁盘上#xff0c;既能做磁盘顺序读#xff0c;又能像内存 KD-Tree 一样做…BKD 树Block KD-Tree是 Lucene 用来存储和快速查询 **多维数值型数据** 的一种磁盘友好型数据结构可以把它想成 **“把 KD-Tree 分块压缩后落到磁盘上既能做磁盘顺序读又能像内存 KD-Tree 一样做范围/最近邻搜索。”**核心要点5 句话1. **存储内容** 只存 **数值/日期/geo 点** 的多维坐标int、long、float、double、geo_point …**不存文本倒排**。2. **结构** • 依旧按 KD-Tree 方式递归切分维度 • 每满 1024 个点就写成一个 **block**顺序磁盘页天然压缩 缓存友好。 • 所有叶子块再建一个 **内存索引**min-max 值 文件指针查询时先扫内存索引→定位少量磁盘块→顺序读几乎无随机 IO。3. **支持的查询** • 范围查询price ≥ 50 AND price 100 • 距离查询geo_distance 5 km 内 • 最近邻knn_vector search 复杂度 **O(log N)**且由于顺序 IO实际比 KD-Tree 在磁盘上快很多。4. **优点** • 磁盘顺序读友好 → SSD/HDD 都高效 • 压缩率极高 → 同样数据体积 1/4 原始数组 • 支持 **实时增删改**新文档追加新 block后台合并5. **在 Elasticsearch 中的位置** • 所有 long, integer, double, date, ip, geo_point, geo_shape, dense_vector 字段**默认**就用 BKD 树存维度数据 • 因此 range, geo_distance, knn 查询都走 BKD 而非倒排索引。一句话
**BKD 树就是 Lucene 的“多维数值索引硬盘版”让范围/距离/最近邻查询在磁盘上也像内存 KD-Tree 一样快。**