ElasticSearch学习笔记(二)——es基本概念与mysql对比理解

本文介绍了Elasticsearch的基本概念,如文档、类型、索引、节点和分片。文档是可搜索数据的最小单元,类似数据库的记录,存储为json格式。索引相当于数据库,可包含多个文档。类型在ES6后被废弃,每个索引默认只有一个类型_doc。节点是ES实例,分片用于分布式存储和提高性能,每个索引可以设置主分片和副本分片以实现数据冗余和高可用。
摘要由CSDN通过智能技术生成


前言

es是非常快速便捷的全文检索工具,这里简单介绍一下elasticsearch

一、ES基本概念


es可以用来创建索引,索引做名词时可以理解成mysql中的一个数据库。很多用过mysql的同学都知道,在数据库中可以创建很多种表,类似的一个索引中可以有多个type,这里的type就对应数据库中的表,不过在es6之后的版本中,type(类型)的概念已经废弃,这里指的是在es7及以后,每个索引中默认只有一个类型_doc.在mysql中,每一张表可以有很多行数据,每行数据里包含很多个字段,例如user表中的一行可能包括use_id,user_name,user_sex,user_age等字段,在es中,一个document(文档)类似于mysql中的一行数据,每个document(文档)中也会包含很多个字段。


二、ES术语解释

1.文档(document)

(1)、文档(document)是所有可搜索数据的最小单元。es的文档就像是mysql中的一条记录,只是es中的文档会被序列化成json格式保存在elsaticsearch中。
(2)、这个json对象是由字段组成,字段就相当于mysql中的列,每个字段都有自己的类型(字符串、数值、布尔、二进制、日期范围类型)。
(3)、当我们创建文档时,如果不指定字段的类型,elasticsearch会帮我们自动匹配类型。
(4)、每个文档都有一个id,类似mysql的主键,咱们可以自己指定,也可以让elasticsearch自动生成。
(5)、文档的json格式支持数组,在一个索引中,可以存储任意多的文档。

2.类型(type)

类型相当于mysql里的表,我们知道mysql里一个库下可以有多个表,最原始的es也是这样,一个索引下可以有很多类型,但是从6.0版本开始,type已经被逐渐废弃,但是这个时候仍然可以设置多个类型,一直到7版本开始,一个索引就只能创建一个类型了。这一点,大家要注意,网上很多资料都是旧版本的,没有对这点进行说明。


3.索引(index)

(1)、索引就相当于mysql里的数据库,它是具有某种相似特性的文档集合。反过来说不同特性的文档一般放在不同的索引中。
(2)、索引的名称必须全部是小写。
(3)、在单个集群中,可以定义任意多个索引。
(4)、索引具有mapping和setting的概念,mapping用来定义文档字段的类型是text还是strng等等,setting用来定义不同数据的分布(分片、副本以及自定义analyzer)。
(5)、索引做名词时可以当做数据库来理解,索引做动词时也可理解为将一个文档存储到索引中。


4.节点(node)

(1)、一个节点就是一个es实例,其本质上就是一个java进程。
(2)、节点的名称可以通过配置文件配置,或者在启动的时候使用-E node.name=ropledata指定,默认是随机分配的。建议咱们自己指定,因为节点名称对于管理目的很重要,咱们可以通过节点名称确定网络中的哪些服务器对应于es集群中的哪些节点。
(3)、Es的节点类型主要分为以下几种:
A、master eligible节点:每个节点启动后,默认就是master eligible节点,可以通过设置node.master:false来禁止。Master eligible可以参加选主流程,并成为master节点,(当第一个节点启动后,它会将自己选为master节点);注意:每个节点都保存了集群的状态,只有master节点才能修改集群的状态信息;
B、Data节点:可以保存数据的节点。主要负责保存分片数据,利于数据扩展;
C、coordinating节点:负责接收客户端需求,将请求发送到合适的节点1,最终把结果汇集到一起。


5.分片(shard)

(1)为了了解分布式或者学过mysql分库分表的应该对分片的概念比较熟悉,es里面的索引可能存储大量数据,这些数据可能会超过单个节点的硬件限制
为了解决这个问题,es提供了将索引细分为多个碎片的功能这就是分片。这里咱们可以简单去理解,在创建索引时,只需要咱们定义所需的碎片数量就可以了,其实每个分片都可以看做是一个完全功能性和独立的索引,可以托管在集群中的任何节点上
(2)分片有什么好处和注意事项
A、通过分片技术,咱们可以水平拆分数据量,同时他还支持跨碎片(可能在多个节点上)分布和并行操作,从而提高性能/吞吐量
B、ES可以完全自动管理分片的分配和文档的聚合来完成搜索请求,并且对用户完全透明
C、主分片数在索引创建时指定,后续只能通过reindex修改,但是较麻烦,一般不进行修改


5.副本分片(replica)

熟悉分布式的朋友应该对副本概念不陌生,为了实现高可用、遇到问题时实现分片的故障转移机制,elasticsearch允许将索引分片的一个或多个复制成所谓的副本分片
(ES默认为一个索引创建5个主分片, 并分别为其创建一个副本分片. 也就是说每个索引都由5个主分片成本, 而每个主分片都相应的有一个copy.)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值