ElasticSearch扫盲概念篇[ES系列] - 第500篇

历史文章(文章累计500+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

ElasticSearch详细搭建以及常见错误high disk watermark [ES系列] - 第497篇

Elasticsearch可视化平台Kibana [ES系列] - 第498篇

Elasticsearch安装分词插件[ES系列] - 第499篇

悟纤:师傅,脑瓜疼来着~

师傅:徒儿这是怎么了?

悟纤:师傅,我感觉自己总是很忧虑,无法真正开心起来。

师傅:徒儿,我理解你的感受。有时候,我们会被一些琐事和烦恼所困扰,导致心情不畅。但是,要想获得更开心,我们需要学会调整自己的心态

悟纤:师傅,怎么调整呢?

师傅:首先,你要学会放下那些无谓的忧虑和烦恼。不要让它们占据你的心灵,影响你的情绪。尝试转移注意力,去做一些让你感到快乐和满足的事情。

悟纤:弟子明白了,要学会放下烦恼,去做让自己开心的事情。

师傅:很好,徒儿。此外,你还可以尝试改变自己的思维方式。不要总是看到事情的负面,试着从积极的角度去看待问题。记住,生活中总会有不如意的事情,但是我们可以选择如何去面对它。

悟纤:师傅,徒儿会努力尝试的。

师傅:我相信你一定能够做到。此外,你还可以尝试寻找一些能够帮助你放松身心的方法,比如运动、听音乐、阅读等。这些活动可以帮助你缓解压力,让你的心情变得更加愉悦。

悟纤:徒儿明白了,谢谢师傅的指导。

导读

Hi,大家好,我是悟纤。我就是我,不一样的烟火。我就是我,与众不同的小苹果。

这一节来看看ES的概念。

一、ES概念

1.1 节点:Node

ElasticSearch 是以集群的方式运行的,而节点是组成ES集群的基本单位,所以每个 ElasticSearch 实例就是一个节点每个物理机器上可以有多个节点使用不同的端口和节点名称

节点按主要功能可以分为三种:主节点(Master Node),协调节点(Coordianting Node)和数据节点(Data Node)。下面简单介绍下:

主节点:处理创建,删除索引等请求,维护集群状态信息。可以设置一个节点不承担主节点角色

协调节点:负责处理请求。默认情况下,每个节点都可以是协调节点。

数据节点:用来保存数据。可以设置一个节点不承担数据节点角色

http://localhost:9200/_cat/nodes?v

1.2角色:Roles

ES的角色分类:

· 主节点(active master):一般指活跃的主节点,一个集群中只能有一个,主要作用是对集群的管理。

· 候选节点(master-eligible):当主节点发生故障时,参与选举,也就是主节点的替代节点。

· 数据节点(data node):数据节点保存包含已编入索引的文档的分片。数据节点处理数据相关操作,如 CRUD、搜索和聚合。这些操作是 I/O 密集型、内存密集型和 CPU 密集型的。监控这些资源并在它们过载时添加更多数据节点非常重要。

· 预处理节点(ingest node):预处理节点有点类似于logstash的消息管道,所以也叫ingest pipeline,常用于一些数据写入之前的预处理操作。

注意:如果 node.roles 为缺省配置,那么当前节点具备所有角色。

1.3索引:Index

索引在 ES 中所表述的含义和 MySQL 中的索引完全不同,在 MySQL 中索引指的是加速数据查询的一种特殊的数据结构,如 normal index。

而在 ES 中,索引表述的含义等价于 MySQL 中的表(仅针对 ES 7.x 以后版本),注意这里只是类比去理解,索引并不等于表。

在 ES 中,索引在不同的特定条件下可以表示三种不同的意思

· 表示源文件数据:当做数据的载体,即类比为数据表,通常称作 index 。例如:通常说 集群中有 product 索引,即表述当前 ES 的服务中存储了 product 这样一张“表”。

· 表示索引文件:以加速查询检索为目的而设计和创建的数据文件,通常承载于某些特定的数据结构,如哈希、FST 等。例如:通常所说的 正排索引 和 倒排索引(也叫正向索引和反向索引)。就是当前这个表述,索引文件和源数据是完全独立的,索引文件存在的目的仅仅是为了加快数据的检索,不会对源数据造成任何影响,

· 表示创建数据的动作:通常说创建或添加一条数据,在 ES 的表述为索引一条数据或索引一条文档,或者 index 一个 doc 进去。此时索引一条文档的含义为向索引中添加数据。

索引的组成部分:

· alias:索引别名

· settings:索引设置,常见设置如分片和副本的数量等。

· mapping:映射,定义了索引中包含哪些字段,以及字段的类型、长度、分词器等。

1.4类型:Type(ES 7.x 之后版本已删除此概念)

在较早的ES版本中,索引可以包含多个类型,每个类型代表了不同的文档结构。然而,从ES 7.x版本开始,类型已经被弃用,一个索引只能包含一个文档类型。

ES 7.x

· 不推荐在请求中指定类型。例如,索引文档不再需要文档type。新的索引 API 适用PUT {index}/_doc/{id}于显式 ID 和POST {index}/_doc 自动生成的 ID。请注意,在 7.0 中,_doc是路径的永久部分,表示端点名称而不是文档类型。

· 索引创建、索引模板和映射 API 中的include_type_name参数将默认为false. 完全设置参数将导致弃用警告。

· _default_映射类型被删除 。

ES 8.x

· 不再支持在请求中指定类型。

· 该include_type_name参数被删除。

1.5文档:Document

文档是ES中的最小数据单元。它是一个具有结构化JSON格式的记录。文档可以被索引并进行搜索、更新和删除操作。

文档元数据,所有字段均以下划线开头,为系统字段,用于标注文档的相关信息:

· _index:文档所属的索引名

· _type:文档所属的类型名

· _id:文档唯一id

· _source: 文档的原始Json数据

· _version: 文档的版本号,修改删除操作_version都会自增1

· _seq_no: 和_version一样,一旦数据发生更改,数据也一直是累计的。Shard级别严格递增,保证后写入的Doc的_seq_no大于先写入的Doc的_seq_no。

· _primary_term: _primary_term主要是用来恢复数据时处理当多个文档的_seq_no一样时的冲突,避免Primary Shard上的写入被覆盖。每当Primary Shard发生重新分配时,比如重启,Primary选举等,_primary_term会递增1。

1.6对比

elasticSearch是面向文档,关系型数据库 和 ElasticSearch 客观的对比!

elasticsearch(集群)中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)

1.7 Node 与 Cluster

Elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。

单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。

• 阿里巴巴前高级研发工程师

• 三家千万级互联网企业技术顾问

• MBTI/盖洛普技术专家

• 厦门某高校外聘教师

• 51CTO特约合作讲师

• 网易云课堂签约讲师

•《深入理解设计模式》作者

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

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

相关文章

laravel异步消息队列详细攻略Supervisor队列进程管理(实战)

1、laravel配置开启队列 这里仅演示数据库队列 查看下面/config/queue.php&#xff0c;里面defult 对应的 env常量是 QUEUE_DRIVER&#xff0c;那就在 项目根目录下的.env文件修改 QUEUE_DRIVERdatabase <?phpreturn [/*|----------------------------------------------…

64位ATT汇编语言学习第一课:汇编和链接

源文件exitTest.s内容如下&#xff1a; # This is the first program .global _start .section .text _start:movq $60,%raxmovq $9,%rdisyscall源文件里边放的就是源代码&#xff0c;而我这里源代码是使用汇编语言写的&#xff0c;都是一些人类都可以阅读的字符。之后需要经过…

c语言do while循环语句

c语言do while循环语句 c语言do while循环语句 c语言do while循环语句一、do while循环语句格式二、do while 循环案例 一、do while循环语句格式 do while语句先循环后判断,条件不符合就结束循环&#xff0c;条件符合继续循环 do { 代码 } while(表达式);int main() {int a 0…

【STM32】STM32学习笔记-MPU6050简介(32)

00. 目录 文章目录 00. 目录01. MPU6050简介02. MPU6050参数03. MPU6050硬件电路04. MPU6050框图05. MPU6050常用寄存器06. 附录 01. MPU6050简介 •MPU6050是一个6轴姿态传感器&#xff0c;可以测量芯片自身X、Y、Z轴的加速度、角速度参数&#xff0c;通过数据融合&#xff0…

LLM推理部署(七):FireAttention——通过无损量化比vLLM快4倍

Mixtral作为第一个在数万亿tokens上训练的OSS模型&#xff0c;最近在人工智能社区掀起了波澜&#xff0c;它支持“混合专家”&#xff08;MoE&#xff09;&#xff0c;并且训练和推理速度非常快。 Fireworks AI是第一个托管Mixtral的平台&#xff0c;在Mixtral公开发布之前就托…

第15届蓝桥杯嵌入式省赛准备第一天总结笔记(使用STM32cubeMX创建hal库工程+点亮LED)

一.使用STM32cubeMX创建工程 1.安装芯片包 点击红圈 找到STM32G4安装最新版本 2.创建工程 点击红圈 在搜索框里搜索STM32G431RBT6&#xff0c;然后点击Start。 然后点击System Core选择RCC&#xff0c;这里是设置外部晶振引脚。 然后配置外部高速时钟为80MHz 然后我们查看电…

基于开源组件自主开发工作流引擎系统

目前基于Java语言开发的主流开源工作流引擎有osworkflow、jbpm、activiti、flowable、camunda。其中osworkflow、jbpm技术较老已经过时&#xff0c;activiti包括activiti5、activiti6、activiti7三个版本&#xff0c;flowable分开源版和商业版&#xff0c;camunda包括camunda7和…

强化学习AI构建实战 - 基于“黄金点”游戏(二)

服务端接口 为了让大家的AI可以顺利地进行游戏&#xff0c;并验证我们对策略和AI的一些实现&#xff0c;我们需要一些基础设施来帮助我们完成一些工作。这些工作包括游戏回合的控制、参与者之间的数据同步、游戏数据的储存等功能。 为了简化这些基础工作&#xff0c;以便大家…

旧路由重置新路由设置新路由设置教程|适用于PPPoE拨号

前言 前几天朋友说路由器想要重置&#xff0c;但不知道怎么弄。所以就想着只帮忙重置路由器的话&#xff0c;只能帮到一个人。但把整个过程写成图文&#xff0c;就可以帮助更多人。 本文章适合电脑小白&#xff0c;请注意每一步哦&#xff01; 注意事项 开始之前需要确认光猫…

TAX个税小知识

人&#xff1a;个人&#xff0c;非居民个人 种类&#xff1a;工资薪金&#xff0c;劳务报酬所得&#xff0c;特许使用费&#xff0c;稿酬所得 工资按月支付扣税&#xff0c;不用个人提供发票&#xff0c;有签劳动合同&#xff1b; 其他三项按月或按次扣税&#xff0c;需要开发…

TTL篇-TtlAgent的使用

接上篇&#xff0c;TTL篇-TTL的使用-CSDN博客 TtlAgent是什么 ttl使用的典型代码是如下所示&#xff0c; DataAllArgsConstructorpublic static class Bean {private String name;}Testpublic void testBean() throws InterruptedException {TransmittableThreadLocal<Be…

10、Kafka ------ 消费者组 和 消费者实例,分区 和 消费者实例 之间的分配策略

目录 消费者组 和 消费者实例★ 消费者组★ 分区 和 消费者实例★ 分配分区&#xff08;分区 和 消费者实例 之间的分配策略&#xff09;3种分配策略★ range策略★ round-robin策略 &#xff08;轮询&#xff09;★ stick策略 如何指定分配分区的策略&#xff1a; 消费者组 和…

Git 基本使用

Git Git是一种分布式版本控制系统&#xff0c;它可以帮助开发团队更好地管理代码并进行协同开发。 gitee,github,gitlab&#xff0c;是基于git的代码托管平台。 官方文档地址(中文)&#xff1a;Git - Git 是什么&#xff1f; 安装和配置 官网下载地址&#xff1a;Git - Downl…

面试官心声:个个都说会自动化,结果面试一问细节全露馅了

今年我们部门计划招聘几名自动化测试工程师&#xff0c;为此我进行了面试和培训&#xff0c;发现了一个让我感到担忧的趋势&#xff0c;许多候选人可以轻松地回答有关脚本编写、元素定位、框架API等问题。然而一问到实际项目&#xff0c;比如 “如何从0开始搭建自动化体系”、“…

k8s---pod控制器

pod控制器发的概念&#xff1a; 工作负载&#xff0c;workload用于管理pod的中间层&#xff0c;确保pod资源符合预期的状态。 预期状态&#xff1a; 1、副本数 2、容器重启策略 3、镜像拉取策略 pod出故障的出去等等 pod控制器的类型&#xff1a; 1、replicaset&#xf…

from表单通过遍历的方式显示

当我们绘制表单数据的时候&#xff0c;有时候知道需要绘制的内容&#xff0c;但是不想在页面一条一条写数据&#xff0c;如果通过遍历显示呢 下面是在uniapp中写h5的方法&#xff0c;直接上代码 <view><view classitem v-for(item,index) in arr :keyindex><v…

【学习资源】分享三个文献互助平台(科研通 / 谷粉 / 纬度)

最近博主准备阅读一些专业相关的文献&#xff0c;有一些可以从博主所在单位购买的数据中直接下载&#xff0c;然而有一些论文数据库是没有购买的&#xff0c;所以要博主自己想办法去下载。 一般来说&#xff0c;两年以前的SCI论文&#xff0c;基本上都可以借助Scihub下载的到&…

pc端微信QQ使用代理解决方案

背景 多数金融类公司都会限制QQ和微信访问&#xff0c;但某些情况导致不得不使用&#xff0c;时不时使用手机会让你的老板感觉你在摸鱼&#xff0c;所以站在技术的角度上研究一下如果在pc端使用 代理开启 以微信举例&#xff0c;如果你用的clash&#xff0c;这里的地址可以设…

2024 解决matplotlib中文字体问题

第一种代码&#xff08;失败代码&#xff09; import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.font_manager import FontPropertiesfont_path /Users/huangbaixi/Desktop/SimHei.ttfdef plot_demo():#print(mpl.get_cachedir())# 绘制折线图font…