核心概念
- 索引 Index:一切设计都是为了提高搜索的性能
- 文档 Document:可被索引的基础信息单元
- 字段 Field:对文档数据根据属性的不同进行标识
- 映射 mapping: 处理数据的方式和规则方面做一些限制:某个字段的数据类型、默认值、分析器、是否被索引等。
- 分片 Shards:可以理解为mysql中的分表。每个分片都是本身也是一个功能完善并且独立的“索引”,这个索引可以被放置到集群中的任何节点上。
分片重要原因:
- 允许水平分割、扩展内容容量;
- 可进行分布式、并行的操作,进而提高性能/吞吐量。
- 副本 Replicas:也就是复制分片。
副本重要原因:
- 分片/节点失败的情况下,提高可用性。(复制分片不可与原节点至于统一节点上,要不一损俱损,起不到复制的作用)
- 扩展搜索量/吞吐量。也可以从副本上取数据呀。
- 分配 Allocation:由master完成。讲分片分配个某个节点的过程,包括分配主分片/副本。如果是副本,还包括从主分片复制数据的过程。