ElasticSearch 中需要掌握的七个概念

Elasticsearch搜索引擎 本篇博客系统地介绍了Elasticsearch 7.14.0在windows环境下安装、基本使用、Springboot集成Elasticsearch以及ELK搭建。 阅读详情

今天来和大家分享下这个 ElasticSearch 中必须要掌握的几个概念。👇

整体关系

老规矩~ 先从整体上认识认识他们~ 😄

每个 Index 由一个或者多个 shard 组成,分布在不同的 node ,document 由 Field 组成,存储在这些 shard 中。

先有个大致的印象,下面我们再细讲这些概念~ 😋

ES vs 关系型数据库

和传统的关系型数据库有这么一种关系 👇

索引 Index

没想到,这么一个词,居然有这三层含义 🐷🐖 (* ̄(oo) ̄)

① 名词

Index (Indices,Indexes) 是文档的集合,类似传统的关系型数据库。

是分片的集合,每个分片相当于 Lucene 中的索引。

② 动词

索引一个文档,就是存储一个文档到一个索引中以便被检索

③ 数据结构

这里指:倒排索引 ,就是通过 value ——> Key ,如下👇 通过记录这个词和它所在的文档ID,对应 Lucene 中的 segments (分段)

类型 Type

这里指的是 文档的类型,而不是字段的类型

先看看以前版本的样子 👇

以前的API 是 {index}/{type}/{id} ,现在是 {index}/_doc/{id} 🐖

这个 type 从 7.x 开始就被移除了!默认是这个 _doc (默认类型~,现在8.x 版本就也不再支持修改这个类型了), 因为这个设计会降低 Lucene 压缩数据的能力,导致数据稀疏。从本质上来看,这个 Type是对索引进行逻辑分区,使用文档类型 _type 和文档 _id 组成 _uid ,形成文档的唯一ID,对索引进行细分~。

而在 Lucene 中,我们这个字段域在索引中是唯一的,所以原本的字段也会被细分,导致字段域增多的同时,数据的密度也就降低了,压缩效率也就降低了。

Tip: ElasticSearch 底层的全文检索是居于 Lucene 实现的。

移除 Type 的具体原因可以看官网的解释 👇

Removal of mapping types | Elasticsearch Guide [7.15] | Elastic

文档 Document

ElasticSearch 是面向文档的,文档是数据存储和索引的最小单位,是字段的集合 (相当于 Lucene 中的文档) ,在 ElasticSearch 中以序列化 JSON 结构存储,文档结构如下👇,下划线开头的是官方提供的字段,称为 元数据

{
    "_index" : "java4ye",
    "_type" : "_doc",
    "_id" : "1001",
    "_score" : 1.0,
    "_source" : {
     "user" : {
      "id" : "123456789",
      "name" : "4ye",
      "age" : 2,
      "desc" : "nice to meet you 2!"
     }
    }
   }

这个文档主要看 _source 字段,里面就是我们上传的文档数据

字段 Field

是文档中的基本单位,以键值对的形式存在,如 上面的 "_id" : "1001" ,(相当于 Lucene 中的字段)

可以在官网中查看,有这么一些元字段🐖

映射 Mapping

用于表示这个字段的数据类型,如 字符串,整数,浮点数,日期等,不指定时会自动创建 (相当于 Lucene 中的字段类型)

如下👇

节点 node

ElasticSearch 是以集群的方式运行的,每个 ElasticSearch 实例就是一个节点。

而节点有很多种角色 👇,好复杂🙃

当你没有配置这个 node.roles ,这个节点默认有下面这些角色

主节点 MasterNode

负责集群节点状态的维护,索引的创建,删除,数据的 rebalance,分片的分配等工作,不负责具体数据的索引和检索

数据节点 DataNode

负责集群中数据的写入和检索,属于 IO,内存 和 CPU 密集型操作,需要的计算资源大

提取节点 IngestNode

数据预处理通道,在数据被索引前预先处理文档。

协调节点 CoordinatingNode

接受客户端请求,然后转发到数据节点,最后将各个节点返回来的数据进行整合。对应着两个阶段

  1. 分散阶段,协调节点将请求转发到保存数据的数据节点
  2. 收集阶段,协调节点将每个数据节点的结果缩减为单个全局结果集

链接

详情请从这里获取~

官网地址 :Node | Elasticsearch Guide [7.15] | Elastic

或者看看 Elastic 中国社区官方博客 的这篇文章 👇

Elasticsearch:Node roles 介绍 - 7.9 之后版本_Elastic-优快云博客_node.role

分片 Shard 和 副本 Replica

Elasticsearch 的 索引是以分片的方式来组织的,每个分片就是 Lucene 中的索引。

分片分为 主分片 和 副本分片,默认配置是 每个索引 5 个主分片,每个主分片都有一个副本分片,主分片和它的副本不在一个节点上,主要作用是 故障转移和负载均衡

文档怎么路由到对应的分片上呢?

公式如下 👇

shard = hash(routing) % number_of_primary_shards

routing 是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值。routing 通过 hash 函数生成一个数字,然后这个数字再除以 number_of_primary_shards (主分片的数量)后得到 余数 。这个分布在 0 到 number_of_primary_shards-1 之间的余数,就是我们所寻求的文档所在分片的位置。

这就解释了为什么我们要在创建索引的时候就确定好主分片的数量 并且永远不会改变这个数量:因为如果数量变化了,那么所有之前路由的值都会无效,文档也再也找不到了。

—— 引用 《Elasticsearch: 权威指南 》

近实时 NRT

这个 近实时 NRT(Near Realtime)是 Elasticsearch 的一大特点,为啥它是近实时的呢~🐖

原因还是和 Lucene 有关,简单来说,就是 ElasticSearch 在写入文档时,数据会先写入这个内存,然后再写到这个 Lucene 的 Segment 中,等到写到 Segment 中才可以被搜索到,此时文档处在文件系统缓存中,后面才会刷到磁盘中的。

这些都在官网的 《Elasticsearch: 权威指南 》 中介绍到~ 图文并茂!地址👇

Elasticsearch: 权威指南 | Elastic

最后

本文就分享到这里啦🐖

Elasticsearch —— ES 环境搭建、概念、基本操作、文档操作、SpringBoot继承ES 链接:提取码: xr76一、注:环境搭建过程中的命令窗口不能关闭,关闭了服务就会关闭(除了修改设置后重启的)●ES 下载地址:默认打开是最新版本新建一个文件夹,重名为 ES ,将解压在 bin 目录中 双击启动 elasticsearch.bat访问 http://127.0.0.1:9200成功●前提需要安装 nodejsgithub 下载 elasticsearch head :解压从界面访问 9200 服务会出现跨域问题。 阅读详情

相关推荐

实时搜索引擎Elasticsearch(1)——基础概念、安装和运行

Elasticsearch(简称ES)是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。本文介绍它的基础概念、安装、运行以及配置。

HinyLover的专栏 2万+

ElasticSearch 中一定要掌握的七个概念

今天来和大家分享下这个 ElasticSearch 中必须要掌握的几个概念。???? 整体关系 老规矩~ 先从整体上认识认识他们~ ???? 每个 Index 由一个或者多个 shard 组成,分布在不同的 node ,document 由 Field 组成,存储在这些 shard 中。 先有个大致的印象,下面我们再细讲这些概念~ ???? ES vs 关系型数据库 和传统的关系型数据库有这么一种关系 ???? 索引 Index 没想到,这么一个词,居然有这三层含义 ????

m0_62051288的博客 2325

elasticsearch(ES)简介及安装-----笔记

ES是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。ES结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。kibana负责数据可视化,elasticsearch负责存储、计算、搜索数据,logstash\Beats负责数据抓取。elasticsearch底层实现是Lucene计术。

weixin_44846205的博客 2387

2020 java Elasticsearch面试题及答案(最全版本持续更新)

前言 涵盖各大公司会问到的面试点,同时随着版本的升级,可能也会有一些面试题更新,也会同步保持更新,因为篇幅原因(其实是我懒,哈哈)所以列了一部分答案,所有的答案见下文,总共485页合计20个技术点,文末自取pdf. 1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。 面试官:想了解应聘者之前公司接触的 ES 使用场景、规模,...

it小旭博客 4871

DolphinScheduler租户配置踩坑实录:手把手教你修复‘tenant not exists‘报错

本文深度解析DolphinScheduler的租户模型,并提供一套从界面到数据库的系统性排查流程,手把手教你修复常见的'tenant not exists'报错。文章揭示了该错误的本质是用户与租户数据关联不一致,并给出了通过UI或SQL更新的具体修复方案,同时分享了根因分析与预防措施,帮助用户从根本上理解和避免此类问题。

2w3e4r5t6y的博客 541

基于STM32开发的智能语音控制系统

本文将介绍如何使用STM32微控制器开发一个智能语音控制系统,通过语音识别模块、OLED显示屏、Wi-Fi模块等实现对家用电器或其他设备的语音控制。智能语音控制系统的核心是STM32微控制器,通过语音识别模块识别用户的语音指令,并根据指令控制家用电器或其他设备。:定期测试语音识别模块、继电器控制模块、OLED显示屏和Wi-Fi模块的工作状态,确保系统能够在各种情况下正常运行,并保持智能语音控制系统的可靠性。本系统同样适用于办公环境,可以通过语音指令控制办公室设备,如照明、空调等,提供智能化的办公体验。

stm32d1219的博客 6912

Elasticsearch介绍和使用步骤详解(含详细代码)

Elasticsearch(简称ES)是一个开源的、高扩展的分布式全文检索引擎,可以近乎实时地存储、检索数据。它的设计目标是稳定、可靠、快速,并能够轻松地扩展到上百台服务器,处理PB级别的数据。

a342874650的专栏 1478

innovus: ccopt_design如何给不同clock设置max_transition

sdc命令的max_trans约束,对应spec里的set_ccopt_property target_max_trans_sdc -delay_corner ss -early/-late -clock_tree xx 0.2。其他的就用set_max_transition 0.5 -clock_path [all_clocks]或者set_ccopt_property target_max_trans 0.5。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 177

Elasticsearch:Node roles 介绍 - 7.9 之后版本

在 Elastic Stack 7.10 的发布中,我们可以直接在 Elasticsearch 的配置文件中配置 Node 的角色 (node roles)。这是一个新的变化。在 7.9 发布版之前,我们使用 node.master: true 来定义一个 master 节点,但是从 7.9 开始之后,我们也可以使用另外一个方法来定义一个 master 节点。我们可以通过 node.roles 来定义一个 master 节点。但是这两种方法只可以选其一,不能两种方法同时使用。在今天的文章中,我来介绍 nod

Elastic 中国社区官方博客 1万+

把 NAST 变成你的遥控器:用 ABAP 程序精确触发与处理 Output Type

摘要 SAP中的Message Control机制通过NAST表记录输出状态,支持自动触发打印、邮件等操作。关键步骤包括: 构造NAST记录:定义输出类型、介质、处理状态等参数 调用处理函数:使用RV_MESSAGE_UPDATE_SINGLE更新表,通过WFMC_MESSAGES_PROCESS执行输出 典型应用场景: 单据补发(如PO邮件重发) 外部系统集成触发输出 故障恢复处理积压消息 注意事项: 需提交事务确保更新生效 区分S/4HANA新旧输出体系 正确处理派发时间(VSZTP)和状态(VSTAT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 261

ABAP Secure Storage 在事务码 SM59 中的应用

系统管理人员在进行维护时,应关注相关日志信息,及时发现可能出现的安全异常,并针对不同安全等级的操作制定相应的备份与恢复策略,以降低潜在风险。该区域在设计上具备高度隔离性,仅允许经过授权的组件访问。保存后,系统会将密码存储在 Secure Storage 中,这种处理方式充分体现了 SAP 标准程序在安全设计上的考量。对于系统管理员而言,这种机制在日常维护与审计中提供了有力的支持,可以通过比对存储数据的哈希值或其他完整性校验手段,及时发现异常变动,保障系统长期稳定运行。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 680

ElasticSearch入门必须要掌握的知识

ElasticSearch入门必须要掌握的知识一、前言二、实操1. 安装es,Kibana2. es基本操作3. es查询操作3. Java操作es 一、前言 elasticsearch 是什么,能干什么,常规使用场景 二、实操 1. 安装es,Kibana 2. es基本操作 创建索引 格式:PUT /索引名称 PUT /test_index 查询索引 格式:GET /索引名称 GET /test_index 删除索引 格式:DELETE /索引名称 DELETE /test_index

qq_28650671的博客 450

基于matlab的图像HOG特征提取算法仿真

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 732

ElasticSearch篇——初始、认识、拿下ElasticSearch,一篇文章带你入门ES,涵盖ES概念,对比Solr,ES核心概念以及常见工具head、kibana安装和使用,保姆级教程!!!

一、学习背景曾经,如果我们在网页上查询某些数据,在输入框中输入部分内容,后台默认可能是通过SQL的模糊查询进行操作的。但是在现今的大数据时代,有几百万条数据,那么常规的模糊查询就非常的缓慢了,慢慢的演进出来了索引,但是还是达不到大数据的要求。那么,就有必要学习一款分布式全文搜索引擎。那么ElasticSearch主要功能就是搜索,如果在某个网站上需要用到搜索功能基本上都是用的ElasticSearch二、ES的起源。

我热爱学习,也乐于分享。无论是科技前沿的洞见,还是生活中的小技巧,我都会在这里与你分享。我相信,知识就是力量,而分享则能让这份力量得到更好的传递。 8万+

STM32开发 -- GPS模块开发详解

一、了解硬件 我使用的GPS模块型号为UBX-M8030 参看:UBX-M8030 系列 查看一下它的特性: 多用途 GNSS 芯片,提供三种产品等级 最多可并发接收 3 个 GNSS(GPS、伽利略、GLONASS、北斗) 行业领先的 -167 dBm 导航灵敏度 业界最低电流消耗 在城市峡谷中具有绝佳的定位精度 安全性和完整性保护 支持所有的卫星增强系统 车载级芯片的工作...

不积跬步,无以至千里 3万+

k230+CanMV+micropython环境下byte、int、hex、string之间的转换常用函数实测

【代码】k230+CanMV+micropython环境下byte、int、hex、string之间的转换常用函数实测。

weixin_47446386的博客 120

ES - ElasticSearch基础概念详解

Elasticsearch(简称ES)是一个基于Apache Lucene构建的开源、分布式、RESTful接口的全文搜索引擎,Elasticsearch通过对Lunece的封装,隐藏了复杂性,提供了使用简单的RESTful Api。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,因为对文档进行了分词处理。ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据,可以在极短的时间内存储、搜索和分析大量的数据。

深入Java世界:探索编程之美与技术深度 2939

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Elasticsearch基本概念

本文主要是对ES基本概念进行整合,理论先行,夯实对ES的基本概念,在知道“是什么”,才能提高学习效率,保姆级学习教程请移步: ES入门笔记. 一、前文介绍 Elasticsearch(简称ES)是一个基于Apache Lucene™的开源搜索引擎,无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。注意,Lucene 只是一个库。想要发挥其强大的作用,你需使用 Java 并要将其集成到你的应用中。 Lucene 非常复杂,你需要深入的了解检索相关知识来理解它

chwensrong的博客 4万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

详解最热门搜索引擎——ES

一、产生背景 ​ 互联网发展早期的时候,对于一般的公司储存的数据量不是那么的大,所以很多公司更倾向于使用数据库去存储和查询数据,如:现在去MySQL中查询数据,大概的查询方式就是:select * from table where filed like “%XXX%”或者其他方式,但是,如果我们在查询的时候没有用到或命中数据库建立的索引话,则会扫描整张表,即便是MySQL做过单表查询能力优化,但是他的极限也只在400万左右,且还会经常出现超时现象,让后为了解决这些问题,。很多公司就开始对数据库进

会编程的小郑 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ES(elasticsearch)搜索引擎 结合java 使用

ES(elasticsearch)搜索引擎 结合java 使用 官方文档地址: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.x/java-rest-high.html 重点概念: 文件索引块是因为使用了倒排索引 倒排索引: 例如 文件a 中有 单词 java php ,文件b中有 java php python ,文件c 中有java , python 那么 单词对应的文件为: java :a ,b,c

qq_42011565的博客 4830

ES 分布式搜索引擎【一】

分布式搜索引擎,elasticsearch、kibana、IK分词器的安装与使用。

m0_52861684的博客 1719

Linux安装elasticsearch搜索引擎并配置

`-v es-plugins:/usr/share/elasticsearch/plugins`:挂载逻辑卷,绑定es的插件目录。- `-v es-data:/usr/share/elasticsearch/data`:挂载逻辑卷,绑定es的数据目录。- `-v es-logs:/usr/share/elasticsearch/logs`:挂载逻辑卷,绑定es的日志目录。- `--network es-net` :加入一个名为es-net的网络中,与elasticsearch在同一个网络中。

m0_74939895的博客 1841

ElasticSearch全文搜索引擎

Lucene是apache下的一个开源的全文检索引擎工具包(一堆jar包)。它为软件开发人员提供一个简单易用的工具包(类库),以方便的在小型目标系统中实现全文检索的功能。Lucene适用于中小型项目 ,ES适用于中大型项目(它底层是基于lucene实现的)虽然全文搜索领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。

2201_75971147的博客 3236

ES(一):ES基本概念和原理简单介绍

Elasticsearch概述: ES是基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全问搜索引擎,且ES支持RestFulweb风格的url访问。ES是基于Java开发的开源搜索引擎,设计用于云计算,能够达到实时搜索,稳定、可靠、快速。此外,ES还提供了数据聚合分析功能,但在数据分析方面,es的时效性不是很理想,在企业应用中一般还是用于搜索。ES自2016年起已经超过Solr等,...

zhoushimiao1990的博客 3万+

分布式搜索引擎ES-elasticsearch入门

正排索引:相当于文档中的一条条记录;例子:汉语值得学习;汉语是语言;汉语学习视频;倒排索引:起源于实际应用中需要根据属性的值来查询记录。这种索引表的每一项都包括一个属性值和包含该属性值得各个记录地址。由于不是根据记录来确定属性,而是根据属性来确定记录的位置。可以记录文档的ids,词频跟位置例子:汉语值得学习;汉语是语言;汉语学习视频;单词文档ids词频TF;位置POS汉1,2,3语1,2,3值得11:1:<3>学习1,3是21:1;<3>言2。

TOMORROW6COME的博客 2051
上一篇: 一个“不需要”写代码 的 mock & 代理 工具
下一篇: 从零到一编码实现Redis分布式锁
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值