Elasticsearch中的数值类型索引

Elasticsearch中的数值类型索引 | 你来啦 👩🏻‍💻

前言

最近杂七杂八的事情比较多,好久没更新文章了🤦‍♀️,今天就好好来理一理之前没搞清楚的关于ES数值索引的问题。ES主要是用于解决文本检索的场景,ES会默认将所有的输入内容当作字符串来理解,对于字段类型是keyword或者text的数据比较友好。但是如果输入的类型是数字,ES还会把数字当作字符串吗?排序问题还有范围查询问题怎么解决呢?

为什么要用BKD Tree

从Elasticsearch5.x开始,Elasticsearch开始使用Lucene6.0版本,而Lucene6.0版本对于Lucene来说有非常大的改变,随之带来的是Elasticsearch有很大的改变。

ES使用的搜索库Lucene在6.0版本以及以后为了解决多维空间位置搜索问题,改用新的数据结构——BKD树来实现位置搜索,带来了很大的性能提升。开发者发现这种实现也能用于一维数据搜索,于是用新的数据结构代替了现在的字符串的实现

kd树

k-d树(k-dimensional),也就是k维树.

kd树是每个叶子节点都为k维点的二叉树。所有非叶子节点可以视作用一个超平面把空间分割成两个半空间。节点左边的子树代表在超平面左边的点,节点右边的子树代表在超平面右边的点。选择超平面的方法如下:每个节点都与k维中垂直于超平面的那一维有关。因此,如果选择按照x轴划分,所有x值小于指定值的节点都会出现在左子树,所有x值大于指定值的节点都会出现在右子树。这样,超平面可以用该x值来确定,其法线为x轴的单位向量。

kd树允许节点内部有任意的维度的数据。kd树使用二叉树实现,类似于一个BST。关键的不同是,当每个节点比较大小时,可以使用不同的维度来比较。下图是一个2k树的结构与其对应的二维空间,它使用了不同的维度来划分左右区域。

image-20220303220207287

优缺点:

  • 优点:K-D树和BST一样不仅可以精确查找,也更适合做范围查询,但K-D树比BST更强,它能对多个维度进行范围查询。

  • 缺点:类似于二叉搜索树,如果一个kd树是平衡的,可以保证O(logn) 的时间复杂度,因此每一个节点都把整个集合划分成了两半。关键的问题就是,只有平衡的情况下才能保证这一点。设想一下ÿ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/345713.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode刷题(剑指offer) 240.搜索二维矩阵Ⅱ

240.搜索二维矩阵Ⅱ 编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,…

JAVA输入任意一个数字,实现递减求和(计算任意整数n的和)

摘要:本文介绍了使用Java编程语言计算任意整数n及其之前所有整数的和的示例代码。代码使用了Scanner类来读取用户输入的整数值,并通过循环计算出和结果并生成计算公式字符串。 内容: 在这个示例中,我们将展示如何使用Java编程语言…

《二叉树》——2

目录 前言: 树的节点个数: 树的叶子节点个数: 树的高度: 树的第K层节点个数: 二叉树查找值为x的节点: 二叉树的销毁: 总结: 前言: 我们在之前的blog中对于前中后的遍历有了深层次…

用JavaFX写了一个简易的管理系统

文章目录 前言正文一、最终效果1.1 主页面1.2 动物管理页面-初始化1.3 动物管理页面-修改&新增1.4 动物管理页面-删除&批量删除 二、核心代码展示2.1 启动类2.2 数据库配置-db.setting2.3 日志文本域组件2.4 自定义表格视图组件2.5 自定义分页组件2.6 动物管理页面2.7 …

Git教程学习:09 Git分支

文章目录 1 分支的简介2 分支的相关操作2.1 分支的创建2.2 分支的切换2.3 分支的合并2.4 分支推送到远程2.5 分支的删除2.6 分支的重命名 3 分支开发工作流程3.1 长期分支3.2 短期分支 1 分支的简介 几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着我们可以把我们…

计算机硬件 6.1BIOS

第六章 计算机基本程序 第一节 BIOS与CMOS芯片 一、认识BIOS 1.中文含义:基本输入输出系统。 2.材质:ROM(Flash Rom) 3.地位:是操作系统与硬件之间的接口。 4.存放内容:①基本输入输出系统;…

自动化防DDoS脚本

简介 DDoS (分布式拒绝服务攻击)是一种恶意的网络攻击,旨在通过占用目标系统的资源,使其无法提供正常的服务。在DDoS攻击中,攻击者通常控制大量的被感染的计算机或其他网络设备,同时将它们协调起来向目标系…

行业分析|中国人工智能发展的优势与差距

​人工智能,被誉为第四次工业革命的催化剂,吸引着发达国家和众多科技公司大举投入研发。我国积极构筑人工智能发展的先发优势,党的二十大报告提出推动战略性新兴产业集群,构建一系列新的增长引擎,包括信息技术、人工智…

基于变异混合蛙跳算法的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 车间调度问题(JSSP)描述 4.2 蛙跳算法(SFLA)基本原理 4.2.1 初始化 4.2.2 局部搜索 4.2.3 全局信息交换 4.2.4 变异策略 4.2.5 终止…

编写后端代码,使用yakit将任意字典进行编码发送,后端解码输出到页面上

挂上代理(小狐狸): yakit中挂上劫持: 编写后端代码: 一个简单的登录代码 访问页面: 给予传参后看yakit劫持了没有 yakit劫持: 将劫持到的数据发送到webFuzzer: 右键选择标签/字典—…

c\c++队列的链式表示(对小白友好)

文章目录 1.链式队列的定义2.初始化3.判断空4.入队5. 出队6.打印全部元素7.源代码 本篇中的链式表示都是带头结点的链式表示。 1.链式队列的定义 typedef struct LinkNode { //链式队列的结点int data;struct LinkNode *next; }LinkNode; typedef struct { //链式…

如何创建以业务为中心的AI?

AI是企业的未来,这一趋势越来越明显。各种AI模型可以帮助企业节省时间、提高效率并增加收入。随着越来越多的企业采用AI,AI很快就不再是一种可有可无的能力,而是企业参与市场竞争的必备能力。 然而,作为一名业务决策者&#xff0c…

pcl之滤波器(二)

pcl滤波器 pcl一共是有十二个主要模块,详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块,官网一共是提供了6个例程,今天看第三个、第四个。 滤波…

(学习日记)2024.01.23:结构体、位操作和枚举类型

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

【学网攻】 第(3)节 -- 交换机配置聚合端口

文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用 前言 网络已经成为了我们生活中不可或缺的一部分,它连接了世界各地的人们,让信息和资源得以自由流动。随着互联网的发展,我们可以通过网络学习、工作、娱乐…

最新综述!3D Gaussian Splatting

作者:小柠檬 | 来源:3DCV 在公众号「3DCV」后台,回复「原论文」可获取论文 文章介绍了3D高斯喷洒在场景重建和渲染中的应用,并探讨了其在机器学习和计算机视觉领域的潜在应用。文章还提供了3D高斯喷洒的基本原理和优化方法&#x…

MoEs学习

和多任务学习的mmoe很像哦(有空再学习一下)moe layer的起源:Switch Transformers paper MoE moe由两个结构组成: Moe Layer :这些层代替了传统 Transformer 模型中的前馈网络 (FFN) 层。MoE 层包含若干“专家”(例如…

解读顺网算力与AI,破局AIGC落地“最后一公里”

全球知名AI科学家吴恩达和李飞飞在CES 2024上预测,2024年将是AI技术继续深化的一年,将成为下一次数字或工业革命真正的变革性驱动力。吴恩达还预测了2024年AI可能的突破性进展,其中包括边缘AI。吴恩达对边缘AI寄予厚望,他认为在笔…

luceda ipkiss教程 57:画微环调制器

案例分享:画微环调制器 全部代码如下: from si_fab import all as pdk from ipkiss3 import all as i3class DC(i3.PCell):straight_length i3.PositiveNumberProperty(default200)radius i3.PositiveNumberProperty(default50)spacing i3.Positive…

坚持刷题 |对称二叉树

文章目录 题目考察点代码实现实现总结扩展用迭代的方式判断是否为对称二叉树递归和迭代的对比可能的扩展提问 坚持刷题,老年痴呆追不上我,今天真的好累,就不难为自己了,刷个简单级别的吧:对称二叉树 题目 101.对称二叉…