Elasticsearch学习笔记(一):基本概念

293 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

导语

Elasticsearch 是一个分布式的开源搜索和分析引擎,目前被广泛使用,本文记录了学习Elasticsearch的一些基本概念。

ES核心概念

Cluster

  • 多台ES服务器组成的分布式系统称为一个ES集群
  • 集群名称,默认是elasticsearch

Node

  • ES集群中的一台服务器
  • 一个节点也可以组成一个elasticsearch集群

Document&field

  • 一个文档(Document)是ES中一个可被索引的基础信息单元,通常用JSON数据结构(类比于Python中的字典)表示。

  • 一个document里面有多个field,每个field就是一个数据字段。

举例如下:

{
  "product_id": "1",
  "product_name": "高露洁牙膏",
  “product_desc”: “高效美白,持续清新。",
  “price”:  4.99,
  "category_id": "2",
  "category_name": "日化用品"
}

以上即一个商品“高露洁牙膏”的document记录,其有着id,name,描述,价格等field用于描述该商品的各种属性。

Index

索引(Index)是包含一堆有相似结构的文档数据的集合,类比于MySQL数据库中的数据库概念。

Shard

  • 单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。
  • 也称这些shard为primary shard,其备份称为replica shard

Replica

  • 任何一台服务器都有可能故障或宕机,shard可能就会丢失,因此可以为每个shard创建多个replica副本。replica可以在shard故障时提供备用服务,保证数据不丢失。
  • 多个replica还可以提升搜索操作的吞吐量和性能。

image.png

上图展示了一个具有4个节点的ES集群的shard分布示意图,其中每个机器上有着4个shard有两个是primary shard,另外两个是replica shard。

这里可以仔细观察一下,就会发现:任意一个primary shard和它的replica shard不在同一台机器上。那么这是为什么呢?回顾刚才对Replica shard的介绍,设置replica副本的原因就是为了保证在primary shard宕机时仍可代替原节点继续工作,因而如果一个primary shard和它的replica shard同时在一个节点上时就没有任何意义了。