elasticsearch的概念,elasticsearch 是啥

首页 > 经验 > 作者:YD1662022-11-04 05:05:24

Elasticsearch核心概念

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

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实时修改设置。

,

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.