Elasticsearch(5)--- 基本命令

说明:该博客对于的Elasticsearch 的版本为7.3。

这篇博客的命令分为ES集群相关命令索引CRUD命令文档CRUD命令。这里不包括Query查询命令,它单独写一篇博客。

一、ES集群相关命令

ES集群相关命令主要是_cat命令,所以这里详细讲解下该命令。

1、_cat命令

_cat系列提供了一系列查询Elasticsearch集群状态的接口。

/_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则让输出缩进更规范

2、示例

1) 节点信息

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
  1. heap.percent 堆内存占用百分比
  2. ram.percent 内存占用百分比
  3. cpu CPU占用百分比
  4. master *表示节点是集群中的主节点
  5. name 节点名

2) 分片信息

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
  1. index 索引名称
  2. shard 分片序号
  3. prirep p表示该分片是主分片, r 表示该分片是复制分片
  4. store 该分片占用存储空间
  5. node 所属节点节点名
  6. docs 分片存放的文档

3) 索引信息

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
  1. health 索引的健康状态
  2. index 索引名
  3. pri 索引主分片数量
  4. rep 索引复制分片
  5. store.size 索引主分片 复制分片 总占用存储空间
  6. pri.store.size 索引总占用空间, 不计算复制分片 占用空间

二、索引CRUD命令

1、查询索引

查询索引命令上面已经展示过了,这里再补充一些

条件过滤

_cat/indices?v&health=yellow   #查询健康状态为yellow的索引

排序

_cat/indices?v&health=yellow&s=docs.count:desc #根据文档数量进行索引排序

索引详细信息

curl -X GET "localhost:9200/my_index/_stats?pretty" #索引详细信息

2、创建索引

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"
}
}
}
}

创建成功

3、删除索引

curl -X DELETE "localhost:9200/index-name"

三、文档CRUD命令

在讲文档的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、创建文档

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.

2、文档查看

GET  /student/_doc/1

如图

3、文档更新

商品PUT和POST执行的时候,如果指定的文档ID存在,那么就可以执行更新操作。不过它们执行的是全量更新,如果需要单独对某字段更新我们可以使用关键字_update

例如

POST /student/_update/1
{
"doc" : {
"age": 5
}
}

如图,发现age已经更新成功

4、文档删除

语法

DELETE /{index}/{type}/{id}

参考

1、Elasticsearch核心技术与实战---阮一鸣(eBay Pronto平台技术负责人

2、ElasticSearch常用命令

3、Elasticsearch 状态查询Cat接口

4、文档操作基本命令

5、ElasticSearch批量操作相关命令

 我相信,无论今后的道路多么坎坷,只要抓住今天,迟早会在奋斗中尝到人生的甘甜。抓住人生中的一分一秒,胜过虚度中的一月一年!(9)

Elasticsearch(5)--- 基本命令(集群相关命令、索引CRUD命令、文档CRUD命令)的更多相关文章

  1. 【原创】《从0开始学Elasticsearch》—集群健康和索引管理

    内容目录 1.搭建Kibana2.集群健康3.索引操作 1.搭建Kibana 正如<Kibana 用户手册>中所介绍,Kibana 是一款开源的数据分析和可视化平台,因此我们可以借助 Ki ...

  2. 原创 | 手摸手带您学会 Elasticsearch 单机、集群、插件安装(图文教程)

    欢迎关注笔者的公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site/ ...

  3. 全文搜索引擎 Elasticsearch 入门:集群搭建

    本文主要介绍什么是 ElasticSearch 以及为什么需要它,如何在本机安装部署 ElasticSearch 实例,同时会演示安装 ElasticSearch 插件,以及如何在本地部署多实例集群, ...

  4. elasticsearch如何设计集群

    本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 在写本文时就在想,如果让你负责一个elasticsearch集群,从零开始,你会从哪些方面 ...

  5. Elasticsearch 教程--分布式集群

    集群 补充章节 正如前文提到的,这就是第个补充的章节,这里会介绍 Elasticsearch 如何在分布式环境中运行. 本章解释了常用术语,比如 集群 (cluster), 节点 (node) 以及  ...

  6. ElasticSearch之二——集群

    ElasticSearch 集群 首先看下ElasticSearch(ES)的架构: 术语解释: cluster:代表一个集群,集群中有多个节点,其中有一个master节点,master通过选举自动产 ...

  7. Redis原理及集群相关知识

    读书笔记 <Redis开发与运维 > Redis使用场景 作为缓存层 减少对Mysql的压力 计数功能 比如使用原子命令incr 共享Session 设置过期时间 可以限制短信接口等调用 ...

  8. ElasticSearch 获取es集群信息

    参考博客:https://www.cnblogs.com/phpshen/p/8668833.html es集群信息有些版本下如果证书过期就会查不到,有些版本貌似不需要,提供一个据说不需要证书的版本的 ...

  9. 使用Spring Data ElasticSearch+Jsoup操作集群数据存储

    使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ...

随机推荐

  1. web设计_1_思路总览

    核心思想:结构和样式分离 HTML与CSS 只有充分将页面核心内容和外观设计相分离而获得的灵活性,才能顺利构建出能够满足每个web用户需要的最佳设计方案. 核心要求:灵活性 适应不同的浏览器,适应各种 ...

  2. bean的创建(五)第二部分 寻找bean的工厂方法实例化

    instanceWrapper = createBeanInstance(beanName, mbd, args); AbstractAutowireCapableBeanFactory.create ...

  3. Jmeter CSV config使用

    1.添加线程组,自己给线程组命名 2.添加CSV data set config 如上,filename是文件的名字 新增.txt文件,将变量写在文件中,完成后,更名为.csv:变量之间用逗号隔开(第 ...

  4. 让Controller支持对平铺参数执行@Valid数据校验

    每篇一句 在金字塔塔尖的是实践,学而不思则罔,思而不学则殆(现在很多编程框架都只是教你碎片化的实践) 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JS ...

  5. CSS3☞transform变换

    transform CSStransform属性允许你旋转,缩放,倾斜或平移给定元素.这是通过修改CSS视觉格式化模型的坐标空间来实现的. DEMO /* Keyword values */ tran ...

  6. Spark Streaming消费Kafka Direct保存offset到Redis,实现数据零丢失和exactly once

    一.概述 上次写这篇文章文章的时候,Spark还是1.x,kafka还是0.8x版本,转眼间spark到了2.x,kafka也到了2.x,存储offset的方式也发生了改变,笔者根据上篇文章和网上文章 ...

  7. python多线程详解

    目录 python多线程详解 一.线程介绍 什么是线程 为什么要使用多线程 二.线程实现 threading模块 自定义线程 守护线程 主线程等待子线程结束 多线程共享全局变量 互斥锁 递归锁 信号量 ...

  8. spark shuffle写操作三部曲之UnsafeShuffleWriter

    前言 在前两篇文章 spark shuffle的写操作之准备工作 中引出了spark shuffle的三种实现,spark shuffle写操作三部曲之BypassMergeSortShuffleWr ...

  9. Linux基础文件查找

    一.文件查找 (一).命令文件 [root@linux ~]# chich ls //从PATH环境变量 [root@linux ~]# chereis vim [root@linux ~]# ech ...

  10. unimrcp-voice-activity语音检测

    研究 unimrcp有一段时间了,其中unimrcp voice acitve的算法,是遭到大家频繁吐槽.今天我们简单的介绍一下unimrcp voice activity 的这个简单粗暴的算法: u ...