elasticSearch核心概念的介绍
前言
我们可以想象一下我在使用数据库查询数据的时候我们应该怎么做?假设我们在使用mysql数据库存储一些数据,我们该如何操作的?
- 建立数据库->建表->插入数据->查询
- 索引
- 一个索引可以理解成一个关系型数据库
- 类型
- 一种type就像一张表,比如user表,order表
- 注意:
- ES 5.x版本中一个index可以有多个type
- ES 6.x版本中一个index只能有一种type
- ES 7.x版本后移除type这个概念
- 映射
- mapping定义了每个字段的类型等信息。相关于关系型数据库中的表结构
- 文档
- 一个document相关于关系型数据库中的一行记录
- 字段
- 相当于关系型数据库的字段
- 集群
- 集群由一个或多个节点组成,一个集群由一个默认名称“elasticsearch”
- 节点
- 集群的节点,一台机器或者一个进程
- 分片和副本
- 副本是分片的副本。分片有主分片(primary Shard) 和 副本分片(replica Shard)之分。
- 一个Index数据在物理上被分布在多个主分片中,每个主分片中存放部分数据。
- 每个主分片可以有多个副本,叫副本分片,是主分片的复制。
es使用的是RESTful风格api来设计的,那么我们就来简单介绍一下。
-
介绍
- RESTful是一种架构的规范与约束、原则,符合这种规范的架构就是RESTful架构。
- 先看REST是什么意思:对资源的表述性状态转移,即通过HTTP动词来实现资源的状态扭转:
- 资源是REST系统的核心概念,所有的设计都是以资源为中心。
-
方法
action描述HEAD只获取某个资源的头部信息GET获取资源POST创建或更新资源PUT创建或更新资源DELETE删除资源GET /user :列出所有的用户
POST /user : 新建一个用户
PUT /user :更新某个指定的用户信息
DELETE /user/id : 删除指定用户
-
curl 工具
-
获取es状态
curl -X GET "http://172.25.45.150:9200"
-
新增一个文档
curl -X PUT "http://172.25.45.150:9200/ccc/_doc/1" -H 'Content-Type: application/json' -d ' { "user": "zhangsan", "message" : "zhangsan is good" } '
-
删除一个文档
curl -X DELETE "http://172.25.45.150:9200/ccc/_doc/1"
#### 索引的介绍和使用
-
-
新增
-
新增一个 nba索引
curl -X PUT "http://172.25.45.150:9200/nba"
-
响应
{ "acknowledged":true, "shards_acknowledged":true, "index":"nba" }
-
-
获取
-
请求
curl -X GET "http://172.25.45.150:9200/nba"
-
响应
{ "nba": { "aliases": {}, //别名 "mappings": {}, //映射 "settings": { //索引设置 "index": { "creation_date": "1645150581465", //创建时间 "number_of_shards": "1", //分片数量 "number_of_replicas": "1", //副本数量 http://172.25.45.150:9200"uuid": "-xxsKdJKT0yqitrwbYYE8g", "version": { "created": "7040299" }, "provided_name": "nba" } } } }
-
-
删除
-
请求
curl -X DELETE "http://172.25.45.150:9200/nba"
-
响应
{ "acknowledged": true }
-
获取所有索引
-
请求
curl -X GET "http://172.25.45.150:9200/_cat/indices?v"
-
响应
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open ccc wc54ITE7TJCdtOgzjaxmng 1 1 0 0 283b 283b yellow open nba4 uGYfI4qZTYiP3E8jH-lz6A 1 1 0 0 230b 230b yellow open nba3 iA2O1MhnSe6cBiYfu80w7Q 1 1 0 0 230b 230b green open .kibana_task_manager_1 KuTEijTeRFOPy810QWLpog 1 0 2 0 30.5kb 30.5kb green open .apm-agent-configuration sdrBOdnLRgahsZRNR8arSQ 1 0 0 0 283b 283b green open .kibana_1 W6kh3-lCRr2zkMHj0Wxm1g 1 0 3 0 14.8kb 14.8kb
-
-
判断索引是否存在
-
请求
curl -X HEAD "http://172.25.45.150:9200/nba"
-
响应
{ "status" : 200 }
-
-
关闭索引
某个索引不想使用了。
-
请求
- 关闭 (关闭之后通过 – 获取-- 会在索引设置字段中多一个"verified_before_close": “true”,字段)
curl -X POST "http://172.25.45.150:9200/nba3/_close"
- 开启
curl -X POST "http://172.25.45.150:9200/nba3/_open"
-
响应
{ "acknowledged": true, "shards_acknowledged": true, "indices": { "nba3": { "closed": true } } }
-