记录一些核心概念
1) Near Realtime (NRT): 近实时,包括 2 个方面,① 数据从写入 Elasticsearch 到可被搜索、分析的延迟 ( 大约 1 秒 ); ② 从 es 中搜索数据、分析数据,秒级别。
2) Cluster: 集群,每个集群有一个名字,默认为 "elasticsearch", 每个集群包含多个节点。
3) Node: 节点,每个节点有一个名字,默认是随机生成的,每个节点属于一个 Cluster ( 集群 ), 默认会加入一个名为 "elasticsearch" 的集群。
4) Document: 文档,es 中最小的数据单元,一个 Document 类似 MySQL 的一条记录,包含多个 Field (字段)。
5) Index: 索引,类似 MySQL 的库,包含多个 Document。
6) Type: 类型,类似 MySQL 的表。Type 是 Index 里的数据逻辑分类,同一个 Type 下的 Document 应拥有同样的 Field。
7) shard: 分片,全称是 primary shard,类似 MySQL 的分库。每个 shard 都是一个 lucene index。完整的建立索引和处理请求的能力。
比如现在有 2GB 的数据,每台机器只能容纳 1GB,就需要把数据分配到 2 台机器上处理。
一个 Index 的 shard 数量在创建时配置,不可修改。Elasticsearch 默认创建 5 个 shard。
shard 让我们可以很方便的横向扩展,比如现在数据量到了 3GB,那么重新创建一个 3 shard 的 Index 便是。
shard 把数据分配到多台机器,提高并发吞吐量。
8) replica: 副本,全称是 replica shard,类似 MySQL 的从库。是 primary shard 的副本。每个 shard 默认创建 1 个 replica。
replica 让 Elasticsearch 高可用。同时,"读请求" 可以直接读 replica,提高并发吞吐量。