elasticsearch的核心概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mn_kw/article/details/82192113

1. Near Realtime(NRT): 近实时,俩个意思,从写入数据到数据可以被搜索到有一个小延迟(大概一秒);基于es执行搜索和分析可以达到秒级

2. Cluster: 集群,包含多个节点,每个节点属于那个集群是通过一个配置(集群的名称,默认是elasticsearch)来决定的

3. Node:节点,集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要(运维管理)

4. Document: 文档,es中的最小数据单元,一个document可以是一条客户数据,一条商品分类数据,一条订单数据,通常用JSON数据结构来表示,每个index下的type中,都可以存储多个document,一个document里面有多个field,每个field就是一个数据字段

product document

{

 "product_id":"1",

"product_name":"茶道",

"product_desc":"提神",

"category_id":"1"

}

5. Index:索引,包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有名称

比如说建立一个product index,商品索引,里面可能就存放了所有的商品数据,所有的商品document。

6. Type:类型,每个索引里都有一个多个type,type是index中的一个逻辑分类,一个type下的document,都有相同的field,比如博客系统,有一个索引,可以定义用户数据type,博客数据type,评论数据type,

商品index,里面存放了所有的商品数据,商品document

但是商品分很多种类,每个种类的document的field可能不太一样,比如说电器商品,可能还包含一些诸如售后时间范围的特殊filed;生鲜商品还包含生鲜保质期等特殊filed.

type.日化商品type,电器商品type,生鲜商品type

日化商品type:product_id,product_name,produce_desc,category_id,category_name

电器商品type:product_id,product_name,produce_desc,category_id,category_name,service_period

生鲜商品type:product_id,product_name,produce_desc,category_id,category_name,eat_period

每个type里面都包含一堆document

{

"product_id" : "2“,

"product_name" : "Mac 笔记本“,

"product_desc" : "4K高清“,

"category_id" : "3“,

"category_name" : "电器“,

”service_period“:"1年"

}

{

"product_id" : "2“,

"product_name" : "大虾“,

"product_desc" : "纯天然“,

"category_id" : "4“,

"category_name" : "生鲜“,

”eat_period“:"7天"

}

7. shard:单台机器无法存储大量数据,es可以将一个索引中的数据切分称为多个shard,分布在多台服务器上存储,有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上执行,提升吞吐量和性能,每个shard都是一个lucene index.

8. replica:任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为每个shard创建多个replica副本,replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能,primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个shard,5个primary shard,5个replica shard ,最小的高可用配置是2台服务器

具体的:

index会被拆分为多个shard,每个shard就会存放这个index的一部分数据,这些shard会散落在多台服务器上

shard的好处:横向扩展:比如数据量增加到4T,这个时候,重新建立有4个shard的索引,将数据导入进去

2. 数据分布多个shard,多台服务器上所有的操作,都会在多台服务器上并行分布式执行,提升吞吐量和性能

好处:高可用性:一个shard宕机,数据不丢,数据继续提供

2. 提升了搜索这类请求的吞吐量和性能

Es                                数据库

Document                    行

Type                            表

Index                            库

猜你喜欢

转载自blog.csdn.net/mn_kw/article/details/82192113
今日推荐