历史文章(文章累计500+)
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特约合作讲师
? 网易云课堂签约讲师
?《深入理解设计模式》作者