ElasticSearch实战(七)-BKD-Tree 多维空间树算法(范围查询算法)
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 多维空间树算法(范围查询算法)相关推荐
- Elasticsearch 实战 - 第四讲:ES 高级查询
Elasticsearch 实战 - 第四讲:ES 高级查询 Elasticsearch 实战系列文章: 一.高级查询 1.简介 2.结果排序 3.分页查询 4.检索查询 5.关键字查询 6.高亮显示 ...
- Elasticsearch 实战 - 第三讲:ES 基本操作、批处理
Elasticsearch 实战 - 第三讲:ES 基本操作.批处理 Elasticsearch 实战系列文章: 一:ES的基本操作 1.索引操作 1.1.建立索引 1.2.删除索引 1.3.查询索引 ...
- ElasticSearch实战系列十一: ElasticSearch错误问题解决方案
前言 本文主要介绍ElasticSearch在使用过程中出现的各种问题解决思路和办法. ElasticSearch环境安装问题 1,max virtual memory areas vm.max_ma ...
- ElasticSearch实战篇 - Spring Boot 整合 ElasticSearch
点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:冯文议 链接:segmentfault.com/a/1190000018625101 当前Spring Boot很是流行,包括我自己, ...
- Elasticsearch实战(八)--- 词条为中心的 CrossFields 多字段搜索策略
Elasticsearch实战- 词条为中心的Cross Fields 搜索策略 文章目录 Elasticsearch实战- 词条为中心的Cross Fields 搜索策略 1.字段中心实现方式及问题 ...
- Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)
Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录
- python将pandas dataframe内容写入ElasticSearch实战
python将pandas dataframe内容写入ElasticSearch实战 目录 python将pandas dataframe内容写入ElasticSearch实战 索引设置 数据写入 数 ...
- elasticsearch实战三部曲之三:搜索操作
elasticsearch实战三部曲之三:搜索操作 2019年01月13日 21:35:18 博陵精骑 阅读数:1367 标签: elasticsearch 更多 个人分类: elasticsearc ...
- Elasticsearch实战篇——Spring Boot整合ElasticSearch
2019独角兽企业重金招聘Python工程师标准>>> 当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来 ...
最新文章
- 回京火车上编码是一种怎样的体验?
- jsp页面提示“Multiple annotations found at this line: - The superclass javax.servlet.http.HttpServlet w
- 【数据结构】——快速排序
- asp.net mysql 读写分离_[ASP.net教程]SqlSugar ORM已经支持读写分离
- c#modbus tcp通讯助手开源_RS485和Modbus知识点汇总
- wss3.0 对文档库的一些操作
- 深入理解java内置锁(synchronized)和显式锁(ReentrantLock)
- linux服务器怎么连接
- (附源码)node.js物资管理系统 毕业设计 071130
- java 聊天室 私聊_使用socket实现网络聊天室和私聊功能
- 【站内题解】十六道csdn每日一练Python题解
- 80老翁谈人生(347):老翁因火星人失窃源代码与方正结成“死结“
- java上溯造型与下溯造型
- MonoRail和WebForm,谁是瑞士军刀
- Alpine Linux
- 网络上的优美感人句子
- 提高网站访问速度的十个技巧
- 如何使用连接器添加数据集?—以HK-Domo为例
- C语言实现简单的登录操作
- Linux shell test命令用法详解