Elasticsearch(5)--- 基本命令(集群相关命令、索引CRUD命令、文档CRUD命令)
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
- heap.percent堆内存占用百分比
- ram.percent内存占用百分比
- cpuCPU占用百分比
- master- *表示节点是集群中的- 主节点
- 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
- index索引名称
- shard分片序号
- prirep- p表示该分片是- 主分片,- r表示该分片是- 复制分片
- store该分片占用存储空间
- node所属节点- 节点名
- 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
- health索引的健康状态
- index索引名
- pri索引- 主分片数量
- rep索引- 复制分片数
- store.size索引- 主分片- 复制分片总占用存储空间
- 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平台技术负责人
4、文档操作基本命令
 我相信,无论今后的道路多么坎坷,只要抓住今天,迟早会在奋斗中尝到人生的甘甜。抓住人生中的一分一秒,胜过虚度中的一月一年!(9)
Elasticsearch(5)--- 基本命令(集群相关命令、索引CRUD命令、文档CRUD命令)的更多相关文章
- 【原创】《从0开始学Elasticsearch》—集群健康和索引管理
		内容目录 1.搭建Kibana2.集群健康3.索引操作 1.搭建Kibana 正如<Kibana 用户手册>中所介绍,Kibana 是一款开源的数据分析和可视化平台,因此我们可以借助 Ki ... 
- 原创 | 手摸手带您学会 Elasticsearch 单机、集群、插件安装(图文教程)
		欢迎关注笔者的公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site/ ... 
- 全文搜索引擎 Elasticsearch 入门:集群搭建
		本文主要介绍什么是 ElasticSearch 以及为什么需要它,如何在本机安装部署 ElasticSearch 实例,同时会演示安装 ElasticSearch 插件,以及如何在本地部署多实例集群, ... 
- elasticsearch如何设计集群
		本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 在写本文时就在想,如果让你负责一个elasticsearch集群,从零开始,你会从哪些方面 ... 
- Elasticsearch 教程--分布式集群
		集群 补充章节 正如前文提到的,这就是第个补充的章节,这里会介绍 Elasticsearch 如何在分布式环境中运行. 本章解释了常用术语,比如 集群 (cluster), 节点 (node) 以及 ... 
- ElasticSearch之二——集群
		ElasticSearch 集群 首先看下ElasticSearch(ES)的架构: 术语解释: cluster:代表一个集群,集群中有多个节点,其中有一个master节点,master通过选举自动产 ... 
- Redis原理及集群相关知识
		读书笔记 <Redis开发与运维 > Redis使用场景 作为缓存层 减少对Mysql的压力 计数功能 比如使用原子命令incr 共享Session 设置过期时间 可以限制短信接口等调用 ... 
- ElasticSearch 获取es集群信息
		参考博客:https://www.cnblogs.com/phpshen/p/8668833.html es集群信息有些版本下如果证书过期就会查不到,有些版本貌似不需要,提供一个据说不需要证书的版本的 ... 
- 使用Spring Data ElasticSearch+Jsoup操作集群数据存储
		使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ... 
随机推荐
- Go语言圣经习题练习_1.4. GIF动画
			练习 1.5: 修改前面的Lissajous程序里的调色板,由黑色改为绿色.我们可以用color.RGBA{0xRR, 0xGG, 0xBB, 0xff}来得到#RRGGBB这个色值,三个十六进制的字 ... 
- 一文搞懂List 、List<Object>、List<?>的区别以及<? extends T>与<? super T>的区别
			前段时间看<Java编程思想>泛型时对 <? extends T>与<? super T>很懵逼,接着看到泛型与集合的更蒙蔽,随后又翻开<码出高效>时, ... 
- tomcat常见面试题目问答Top10
			Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它 ... 
- 并发栅栏CyclicBarrier---简单问2
			并发栅栏CyclicBarrier---简单问 背景:前几天在网上看到关于Java并发包java.concurrent中一个连环炮的面试题,整理下以备不时之需. CyclicBarrier简介: 栅栏 ... 
- UE4 本地化不起作用  SetCurrentCulture
			UE4 本地化 FInternationalization::Get ().SetCurrentCulture ( TEXT ( "en" ) ) FInternationaliz ... 
- java的jar打包工具的使用
			java的jar打包工具的使用 java的jar是一个打包工具,用于将我们编译后的class文件打包起来,这里面主要是举一个例子用来说明这个工具的使用. 在C盘下的temp文件夹下面: ... 
- Selenium+java - 调用JavaScript操作
			前言 在做web自动化时,有些情况selenium的api无法完成,需要通过第三方手段比如js来完成实现,比如去改变某些元素对象的属性或者进行一些特殊的操作,本文将来讲解怎样来调用JavaScript ... 
- dubbo异常处理
			dubbo异常处理 我们的项目使用了dubbo进行不同系统之间的调用. 每个项目都有一个全局的异常处理,对于业务异常,我们会抛出自定义的业务异常(继承RuntimeException). 全局的异常处 ... 
- HelloDjango 系列教程:Django 的接客之道
			文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 Web 服务简单的说就是处理请求,每个请求就像是一个"顾客".首先热情地把顾客迎接进来,然后满足用户的个性 ... 
- 控制台出现_ob_:Obsever
			我遇到一个问题:我的代码想让他点击之后得到经纬度坐标数组,然后我就这样写了 然而控制台却读取出了 
