Bkd-Tree作为一种基于K-D-B-tree的索引结构,用来对多维度的点数据(multi-dimensional point data)集进行索引。Bkd-Tree跟K-D-B-tree的理论部分在本篇文章中不详细介绍。

一句话概括整个流程的话就是:根据某一个维度将点数据集划分为两部分,递归式将两部分的点数据子集进行划分,最终生成一个满二叉树

Lucene 7.5.0版本源码中当一个节点中的点数据个数大于1024才会进行切分,为了能简单示例,例子中假设一个节点中的点数据个数大于2个才会进行切分,并且点数据的维度为2。

点数据集,图示如下:

上图中一共有8个点数据,每个点数据有两个维度。为了描述方便,下面统称为x维度,跟y维度。

        处理节点1

  • 是否要切分:初始的数据集作为第一个节点,即节点1开始进行切分,该节点中有8个数据,大于节点切分的条件值2,所以需要切分。
  • 选出切分维度:x维度的最大值跟最小值的差值为7 ,而y维度的最大值跟最小值的差值为9,所以当前节点的切分维度为y维度。<

ElasticSearch实战(七)-BKD-Tree 多维空间树算法(范围查询算法)相关推荐

  1. Elasticsearch 实战 - 第四讲:ES 高级查询

    Elasticsearch 实战 - 第四讲:ES 高级查询 Elasticsearch 实战系列文章: 一.高级查询 1.简介 2.结果排序 3.分页查询 4.检索查询 5.关键字查询 6.高亮显示 ...

  2. Elasticsearch 实战 - 第三讲:ES 基本操作、批处理

    Elasticsearch 实战 - 第三讲:ES 基本操作.批处理 Elasticsearch 实战系列文章: 一:ES的基本操作 1.索引操作 1.1.建立索引 1.2.删除索引 1.3.查询索引 ...

  3. ElasticSearch实战系列十一: ElasticSearch错误问题解决方案

    前言 本文主要介绍ElasticSearch在使用过程中出现的各种问题解决思路和办法. ElasticSearch环境安装问题 1,max virtual memory areas vm.max_ma ...

  4. ElasticSearch实战篇 - Spring Boot 整合 ElasticSearch

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:冯文议 链接:segmentfault.com/a/1190000018625101 当前Spring Boot很是流行,包括我自己, ...

  5. Elasticsearch实战(八)--- 词条为中心的 CrossFields 多字段搜索策略

    Elasticsearch实战- 词条为中心的Cross Fields 搜索策略 文章目录 Elasticsearch实战- 词条为中心的Cross Fields 搜索策略 1.字段中心实现方式及问题 ...

  6. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)

    Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录

  7. python将pandas dataframe内容写入ElasticSearch实战

    python将pandas dataframe内容写入ElasticSearch实战 目录 python将pandas dataframe内容写入ElasticSearch实战 索引设置 数据写入 数 ...

  8. elasticsearch实战三部曲之三:搜索操作

    elasticsearch实战三部曲之三:搜索操作 2019年01月13日 21:35:18 博陵精骑 阅读数:1367 标签: elasticsearch 更多 个人分类: elasticsearc ...

  9. Elasticsearch实战篇——Spring Boot整合ElasticSearch

    2019独角兽企业重金招聘Python工程师标准>>> 当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来 ...

最新文章

  1. 回京火车上编码是一种怎样的体验?
  2. jsp页面提示“Multiple annotations found at this line: - The superclass javax.servlet.http.HttpServlet w
  3. 【数据结构】——快速排序
  4. asp.net mysql 读写分离_[ASP.net教程]SqlSugar ORM已经支持读写分离
  5. c#modbus tcp通讯助手开源_RS485和Modbus知识点汇总
  6. wss3.0 对文档库的一些操作
  7. 深入理解java内置锁(synchronized)和显式锁(ReentrantLock)
  8. linux服务器怎么连接
  9. (附源码)node.js物资管理系统 毕业设计 071130
  10. java 聊天室 私聊_使用socket实现网络聊天室和私聊功能
  11. 【站内题解】十六道csdn每日一练Python题解
  12. 80老翁谈人生(347):老翁因火星人失窃源代码与方正结成“死结“
  13. java上溯造型与下溯造型
  14. MonoRail和WebForm,谁是瑞士军刀
  15. Alpine Linux
  16. 网络上的优美感人句子
  17. 提高网站访问速度的十个技巧
  18. 如何使用连接器添加数据集?—以HK-Domo为例
  19. C语言实现简单的登录操作
  20. Linux shell test命令用法详解

热门文章

  1. OCR应用(证件识别、文档识别)
  2. Centos更改yum源为阿里云镜像源
  3. NB-IoT网络规划过程
  4. NB-IOT的背景基础知识
  5. 2006年最值得期待的大片
  6. Dijkstra算法总结
  7. python集合的基本运算
  8. 【开发日志-已归档】2021-11
  9. 怎样提高解决问题的能力
  10. 我知道眼泪多余,笑变得好不容易