# 1.1基础概念
##### 集群和节点:
> 一个集群是由一个或多个ES组成的集合,每一个集群都有一个唯一的名字
> 每一个节点都有自己的名字,每一个节点都是通过集群的名字来加入集群的,节点能够存储数据,参与集群索引数据以及搜索数据的独立服务
##### 概念:
> Index(索引)相当于SQL里的DataBase,也就是数据库
> Type(类型)相当于SQL里的Table,也就是表,在6.0版本已经弃用这个概念
官方不再建议在索引中创建多个类型。并在后续高版本弃用type,详细见官方文档。
> Document(文档)相当于SQL里的一行记录,也就是一行数据
> Field(字段)就是相当于SQL里的一个字段
> Shard(分片)单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。每个shard都是一个lucene index。
> Replica shard(副本分片)replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。
> Mapping(映射)它定义了索引中每个字段类型,以及索引的其他设置,可事先定义,也可以根据第一次存储的文档自动识别,类似mysql里建表时对字段定义数据类型。
###### 建立索引前手动自定义分片:
```
{
"settings": {
"number_of_shards": "3",
"number_of_replicas": "1",
"refresh_interval": "30s"
}
}
```
![](/assets/1.png)
* primary shard默认为5个,并且一旦建好不能修改,replica shard默认1个,随时修改数量
* 一般使用默认的分片就可以了,就是5个primary shard,每个primary shard拥有一个replica shard。也就是说每个索引有10个分片
####修改副本shard数量
```
PUT index/_settings
{
"number_of_replicas": "2",
"refresh_interval": "30s"
}
```
![](/assets/41.png)
###### Mapping的创建:
Mapping一旦创建,字段类型不能修改,只能增加字段,类似于mysql,因此建表前需要考虑好。
![](/assets/2.png)
使用Head插件查看索引信息![](/assets/3.png)
- 目录
- 前言
- ElasticSearch基础
- 基础概念
- 生产环境配置
- ElasticSearch插件
- ElasticSearch-head插件
- 中文分词
- ElasticSearch安全插件x-pack
- ElasticSearch查询
- ElasticSearch语法
- 创建索引
- 新增文档
- 修改文档
- 查询文档
- 简单查询
- 基础查询
- 聚合查询
- 删除文档
- ElasticSearch高级查询
- filter语法
- 关联查询
- SpringBoot集成ES的操作
- java操作ES
- Spring-data-elasticsearch操作ES
- SpringBoot性能优化
- ElasticSearch的优化
- ElasticSearch系统优化
- ElasticSearch数据的备份与恢复
- ElasticSearch性能调优
- ElasticSearch集群监控
- ElasticSearch问题汇总
- ElasticSearch问题
- ElasticSearch学习网站