elasticsearch基础篇(1):概念

上图就是elasticsearch的架构图

我们这里就拿ElasticSearch与数据库Mysql进行对比说明:

索引indices------------------------------------------------------------------ 数据库database

  类型type------------------------------------------------------------------ 数据库表table

    文档document------------------------------------------------------------------ 行row

      字段field------------------------------------------------------------------ 列columns

1、概念说明

(1)索引库indices

indices是index的复数,代表许多个索引;

(2)类型type

类型是模拟mysql中的table的概念,一个索引库下可以有不同类型的索引,比如商品索引,品牌索引,其他数据格式不同。从6.0.0 版本起已废弃,一个索引中只存放一类数据。

(3)文档document

存入索引库原始的数据,比如一个条用户信息,就是一个文档;被索引的一条数据,索引的基本信息单元,以json格式来表示。

(4)字段field

就是文档中的属性,

(5)映射mappings

字段和数据类型、属性、是否索引、是否存储等特性。

2、分片与副本

2.1、Shard分片

在创建一个索引时可以指定分成多少个分片来存储。每个分片本身也就一个功能完善且独立的“索引”,可以被放置在集群的任意节点上。分片的好处:

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

【注意】分片数创建索引时指定,创建后不能再修改了,系统默认分片数为5。

2.2、Relication备份

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

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

【注意】副本数是可以随时改变的,系统默认副本数为1。