#<center> Elasticsearch(5)--- 基本命令</center>html
说明
:该博客对于的Elasticsearch 的版本为7.3。node
这篇博客的命令分为ES集群相关命令
,索引CRUD命令
,文档CRUD命令
。这里不包括Query查询命令,它单独写一篇博客。mysql
<font color=#FFD700> 1、ES集群相关命令</font>
ES集群相关命令主要是_cat
命令,因此这里详细讲解下该命令。sql
一、_cat命令
_cat
系列提供了一系列查询Elasticsearch集群状态的接口。json
/_cat/allocation #查看单节点的shard分配总体状况 /_cat/shards #查看各shard的详细状况 /_cat/shards/{index} #查看指定分片的详细状况 /_cat/master #查看master节点信息 /_cat/nodes #查看全部节点信息 /_cat/indices #查看集群中全部index的详细信息 /_cat/indices/{index} #查看集群中指定index的详细信息 /_cat/segments #查看各index的segment详细信息,包括segment名, 所属shard, 内存(磁盘)占用大小, 是否刷盘 /_cat/segments/{index}#查看指定index的segment详细信息 /_cat/count #查看当前集群的doc数量 /_cat/count/{index} #查看指定索引的doc数量 /_cat/recovery #查看集群内每一个shard的recovery过程.调整replica。 /_cat/recovery/{index}#查看指定索引shard的recovery过程 /_cat/health #查看集群当前状态:红、黄、绿 /_cat/pending_tasks #查看当前集群的pending task /_cat/aliases #查看集群中全部alias信息,路由配置等 /_cat/aliases/{alias} #查看指定索引的alias信息 /_cat/thread_pool #查看集群各节点内部不一样类型的threadpool的统计信息, /_cat/plugins #查看集群各个节点上的plugin信息 /_cat/fielddata #查看当前集群各个节点的fielddata内存使用状况 /_cat/fielddata/{fields} #查看指定field的内存使用状况,里面传field属性对应的值 /_cat/nodeattrs #查看单节点的自定义属性 /_cat/repositories #输出集群中注册快照存储库 /_cat/templates #输出当前正在存在的模板信息
每一个命令都支持使用?v参数,让输出内容表格显示表头; pretty则让输出缩进更规范
bash
二、示例
1) 节点信息app
curl -X GET "localhost:9200/_cat/nodes?v&pretty" ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 172.18.0.4 52 97 6 0.02 0.11 0.28 mdi - es7_02 172.18.0.5 57 97 6 0.02 0.11 0.28 mdi * es7_01
heap.percent
堆内存占用百分比ram.percent
内存占用百分比cpu
CPU占用百分比master
*
表示节点是集群中的主节点
name
节点名
2) 分片信息curl
curl -X GET "localhost:9200/_cat/shards?v&pretty" index shard prirep state docs store ip node .monitoring-es-7-2019.08.30 0 p STARTED 21333 11.8mb 172.18.0.5 es7_01 .monitoring-es-7-2019.08.30 0 r STARTED 21333 11.8mb 172.18.0.4 es7_02 goods-index 0 p STARTED 1 2.5mb 172.18.0.5 es7_01 goods-index 0 r STARTED 1 2.5mb 172.18.0.4 es7_02 .kibana_1 0 p STARTED 4 22.4kb 172.18.0.5 es7_01 .kibana_1 0 r STARTED 4 22.4kb 172.18.0.4 es7_02
index
索引名称shard
分片序号prirep
p
表示该分片是主分片
,r
表示该分片是复制分片
store
该分片占用存储空间node
所属节点节点名
docs
分片存放的文档
数
3) 索引信息ui
curl -X GET "localhost:9200/_cat/indices?v" health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open goods-index NhqSRJWUQiu46tdOKol4wA 1 1 1 7018 5mb 2.5mb green open .monitoring-es-7-2019.08.30 lVDNFDVdSXqqrn8CdI_XGg 1 1 21333 18920 23.6mb 11.8mb green open .kibana_1 rvSlNVjJTsus80klzU19jQ 1 1 4 1 44.9kb 22.4kb
health
索引的健康状态index
索引名pri
索引主分片
数量rep
索引复制分片
数store.size
索引主分片
复制分片
总占用存储空间pri.store.size
索引总占用空间, 不计算复制分片
占用空间
<br>url
<font color=#FFD700> 2、索引CRUD命令</font>
一、查询索引
查询索引命令上面已经展现过了,这里再补充一些
条件过滤
_cat/indices?v&health=yellow #查询健康状态为yellow的索引
排序
_cat/indices?v&health=yellow&s=docs.count:desc #根据文档数量进行索引排序
索引详细信息
curl -X GET "localhost:9200/my_index/_stats?pretty" #索引详细信息
二、建立索引
PUT /student { "settings": { "number_of_shards": 3, "number_of_replicas": 1 }, "mappings": { "properties": { "name": { "type":"text" }, "country": { "type":"keyword" }, "age": { "type":"integer" }, "date": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } }
建立成功
三、删除索引
curl -X DELETE "localhost:9200/index-name"
<br>
<font color=#FFD700> 3、文档CRUD命令</font>
在讲文档的CRUD以前咱们要先理解 GET/PUT/POST/DELETE
POST /uri #建立 DELETE /uri/xxx #删除 PUT /uri/xxx #更新或建立 GET /uri/xxx #查看
思考
:POST和PUT的区别
1)在ES中,若是不肯定文档的ID,那么就须要用POST,它能够本身生成惟一的文档ID。若是肯定文档的ID,那么就能够用PUT,固然也能够用POST,它们均可以建立或修改文档(若是是修改,那么_version版本号提升1)
2)PUT、GET、DELETE是幂等的,而POST并不必定是幂等。若是你对POST也指定了文档ID,那它其实和PUT没啥区别,那它就是幂等。若是你没有指定文档ID那么就不是幂等操做了,由于同一数据,你执行屡次POST,那么生成多个UUID的文档,
也就是每POST一次都会新增一条数据。
一、建立文档
1)PUT方式建立
PUT /student/_doc/1 { "name": "徐小小", "country": "杭州", "age": "3", "date": "2019-09-04" }
运行结果
2)POST方式建立
POST不指定主键
POST /student/_doc { "name": "徐小小", "country": "杭州", "age": "3", "date": "2019-09-04" }
运行结果
POST指定主键ID
POST /student/_doc/88 { "name": "徐小小", "country": "杭州", "age": "3", "date": "2019-09-04" }
运行结果
能够明显看出,POST也能够指定文档ID,若是指定文档ID,那么就和PUT没有区别。ID不存在则建立,存在则更新而且_version
版本+1.
二、文档查看
GET /student/_doc/1
如图
三、文档更新
商品PUT和POST执行的时候,若是指定的文档ID存在,那么就能够执行更新操做。不过它们执行的是全量更新,若是须要单独对某字段更新咱们可使用关键字_update
例如
POST /student/_update/1 { "doc" : { "age": 5 } }
如图,发现age已经更新成功
四、文档删除
语法
DELETE /{index}/{type}/{id}
<br>
<font color=#FFD700>参考</font>
一、Elasticsearch核心技术与实战---阮一鸣(eBay Pronto平台技术负责人
四、文档操做基本命令
<br> <br>
我相信,不管从此的道路多么坎坷,只要抓住今天,早晚会在奋斗中尝到人生的甘甜。抓住人生中的一分一秒,赛过虚度中的一月一年!(9)
<br>
原文出处:https://www.cnblogs.com/qdhxhz/p/11461174.html