当前位置:首页 > 经验 >

elasticsearch的概念(elasticsearch 是啥)

来源:原点资讯(www.yd166.com)时间:2022-11-04 05:05:24作者:YD166手机阅读>>

Elasticsearch核心概念
  • Near Realtime (NRT) 近实时:数据提交索引后,立马就可以搜索到。
  • Cluster集群:一个集群由一个唯一的名字标识,默认为“elasticsearch”。集群名称非常重要,具体相同集群名的节点才会组成一个集群。集群名称可以在配置文件中指定。集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。Elasticsearch的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看Elasticsearch集群,在逻辑上是个整体,你与任何一个节点的通信和与整个Elasticsearch集群通信是等价的。
  • Node 节点:存储集群的数据,参与集群的索引和搜索功能。像集群有名字,节点也有自己的名称,默认在启动时会以一个随机的UUID的前七个字符作为节点的名字,你可以为其指定任意的名字。通过集群名在网络中发现同伴组成集群。一个节点也可是集群。每一个运行实例称为一个节点,每一个运行实例既可以在同一机器上,也可以在不同的机器上。所谓运行实例,就是一个服务器进程,在测试环境中可以在一台服务器上运行多个服务器进程,在生产环境中建议每台服务器运行一个服务器进程。
  • Index 索引: 一个索引是一个文档的集合(等同于solr中的集合)。每个索引有唯一的名字,通过这个名字来操作它。一个集群中可以有任意多个索引。索引作动词时,指索引数据、或对数据进行索引。
  • Type 类型:指在一个索引中,可以索引不同类型的文档,如用户数据、博客数据。从6.0.0 版本起已废弃,一个索引中只存放一类数据。

Elasticsearch里的索引概念是名词而不是动词,在elasticsearch里它支持多个索引。 一个索引就是一个拥有相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,你能够创建任意多个索引。

  • Document 文档:被索引的一条数据,索引的基本信息单元,以JSON格式来表示。一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档、某一个产品的一个文档、某个订单的一个文档。文档以JSON格式来表示,而JSON是一个到处存在的互联网数据交互格式。在一个index/type里面,你可以存储任意多的文档。注意,一个文档物理上存在于一个索引之中,但文档必须被索引/赋予一个索引的type。

Document 是一个JSON Object,相关的schema信息通过mapping来定义。mapping不仅仅包括数据类型的定义,还有很多其他元信息的设置,它们共同决定了数据如何被存储和索引。

elasticsearch的概念,elasticsearch 是啥(1)

Elasticsearch官方从6.0开始淡化doc_type的概念,推荐一个index只拥有一个doc_type,并计划在8.x完全废弃doc_type。

Shard 分片:在创建一个索引时可以指定分成多少个分片来存储。每个分片本身也是一个功能完善且独立的“索引”,可以被放置在集群的任意节点上(分片数创建索引时指定,创建后不可改了,副本数可以随时改。)。索引分片,Elasticsearch可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。分片的好处:

  • 允许我们水平切分/扩展容量
  • 可在多个分片上进行分布式的、并行的操作,提高系统的性能和吞吐量。

Replication 备份: 一个分片可以有多个备份(副本)。备份的好处:

  • 高可用扩展搜索的并发能力、吞吐量。
  • 搜索可以在所有的副本上并行运行。

Shard从角色上划分为primary shard和replica shard两种,数据会首先写入primary shard,然后同步到replica shard中。

primary shard:主分片,每个文档都存储在一个分片中,当你存储一个文档的时候,系统会首先存储在主分片中,然后会复制到不同的副本中。默认情况下,一个索引有5个主分片。你可以在事先制定分片的数量,当分片一旦建立,分片的数量则不能修改。

replica shard:副本分片,每一个分片有零个或多个副本。副本主要是主分片的复制,其中有两个目的:

  • 增加高可用性:当主分片失败的时候,可以从副本分片中选择一个作为主分片。
  • 提高性能:当查询的时候可以到主分片或者副本分片中进行查询。默认情况下,一个主分配有一个副本,但副本的数量可以在后面动态的配置增加。副本必须部署在不同的节点上,不能部署在和主分片相同的节点上。

elasticsearch的概念,elasticsearch 是啥(2)

一个shard包含一组segment,segment是最小的数据单元,Elasticsearch每隔一段时间产生一个新的segment,里面包含了新写入的数据。segment是immutable的,即不可改变。

通常情况下,我们都会拿Elasticsearch的这些概念跟关系型数据库对比来更好的理解。

比如index等价于database,doc_type等价于table,mapping等价于db schema。

elasticsearch的概念,elasticsearch 是啥(3)

index.number_of_shards: 5(Elasticsearch 7.x 默认值为1)设置默认索引分片个数。

index.number_of_replicas: 1(默认值为1) 设置索引的副本个数。

如果服务器够多,可以将分片提高,尽量将数据平均分布到集群中,增加副本数量可以有效的提高搜索性能。

需要注意: "number_of_shards" 是索引创建后一次生成的,后续不可更改设置 。分片副本数"number_of_replicas",可以通过update-index-settings API实时修改设置。

栏目热文

elasticsearch重要吗(为什么要elasticsearch)

elasticsearch重要吗(为什么要elasticsearch)

前提人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的...

2022-11-04 05:04:41查看全文 >>

elasticsearch怎么读日志(elasticsearch 日志输出)

elasticsearch怎么读日志(elasticsearch 日志输出)

ElasticStack技术栈如果你没有听说过 Elastic Stack,那你一定听说过 ELK ,实际上 ELK 是...

2022-11-04 04:19:49查看全文 >>

elasticsearch是什么系统(elasticsearch为什么快)

elasticsearch是什么系统(elasticsearch为什么快)

在安装配置之前 ,我们首先应该弄清楚什么是Elasticsearch,以及它有什么作用什么是Elasticsearch?...

2022-11-04 04:35:44查看全文 >>

elasticsearch干嘛的(elasticsearch白名单)

elasticsearch干嘛的(elasticsearch白名单)

Elasticsearch,这个家伙我就不用过多介绍了吧,简称ES,这可不是js里面的es语法也不是阿里云里面的es云服...

2022-11-04 04:35:08查看全文 >>

elasticsearch用什么语言写的(elasticsearch什么语言好)

elasticsearch用什么语言写的(elasticsearch什么语言好)

本文演示了如何使用IK Analysis 插件来实现在 Elasticsearch 中的中文分词功能。使用中文分词在“S...

2022-11-04 04:39:29查看全文 >>

elasticsearch是什么东西(elasticsearch是干啥的)

elasticsearch是什么东西(elasticsearch是干啥的)

Elasticsearch的简介ElasticSearch:智能搜索,分布式的搜索引擎是ELK的一个组成,是一个产品,而...

2022-11-04 04:22:53查看全文 >>

elasticsearch用什么语言(elasticsearch是用什么语言写的)

elasticsearch用什么语言(elasticsearch是用什么语言写的)

背景“检索”是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并...

2022-11-04 04:20:32查看全文 >>

elasticsearch 重要吗(elasticsearch 为啥快)

elasticsearch 重要吗(elasticsearch 为啥快)

问题1:开发不规范。我们这边es 都是我们在推,很多开发不会用或者用的不规范!问题2:不管性能,用起来再说!场景1:我们...

2022-11-04 04:56:37查看全文 >>

elasticsearch 别名(elasticsearch使用场景)

elasticsearch 别名(elasticsearch使用场景)

序言Elasticsearch提供了很多开发与运维便利的特性,很多特性看起来微不足道,需要时感慨真是卧虎藏龙。以下围绕E...

2022-11-04 04:20:36查看全文 >>

elasticsearch怎么用(elasticsearch客户端操作)

elasticsearch怎么用(elasticsearch客户端操作)

本章将介绍:Elasticsearch的作用,搭建elasticsearch的环境(Windows/Linux),Ela...

2022-11-04 04:23:10查看全文 >>

文档排行