从零学Elasticsearch系列——使用kibana实现ES基本的操作
2019-01-09 09:34
671 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31871785/article/details/86131950
系列文章:
- 从零学Elasticsearch系列——基础概念
- 从零学Elasticsearch系列——环境搭建
- 从零学Elasticsearch系列——使用kibana实现ES基本的操作
- 从零学Elasticsearch系列——深入搜索(Query、Filter、Aggregation)
- 从零学Elasticsearch系列——JAVA API操作
- 从零学Elasticsearch系列——集成中文分词器IK
- 从零学Elasticsearch系列——构建ES集群
- 从零学Elasticsearch系列——搭建ELK Nginx日志分析平台
一、使用Kibana实现ES基本的操作
进入kibana开发测试工具界面
查看集群
查看集群健康信息
GET /_cat/health?v
集群状态(status)
- Green(正常)
- Yellow(正常,但是一些副本还没有分配)
- Red(非正常)
可以使用
GET /_cat/health?help查看每个操作返回结果字段的意义
注意:
- 这里的
GET是RESTful API的请求方式 /_cat/health?help是RESTful API接口- 你也可以使用PostMan这样的RESTful API测试工具,但是没有提示
使用方式如下:
查看集群中节点信息
GET /_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 192.168.23.141 9 91 7 0.10 0.08 0.13 mdi * x0vIhEF
查看集群中的索引信息
GET /_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size yellow open baizhi BYzhTHMzQIKEiyaKXklueQ 5 1 0 0 1.2kb
简化写法
GET /_cat/indices?v&h=health,status,index
health status index yellow open baizhi
索引操作
创建索引
PUT /baizhi
#! Deprecation: the default number of shards will change from [5] to [1] in 7.0.0; if you wish to continue using the default of [5] shards, you must manage this on the create index request or with an index template { "acknowledged": true, # 创建成功返回true "shards_acknowledged": true, "index": "baizhi" }
上面的操作使用默认的配置信息创建一个索引
删除索引
DELETE /baizhi
{ "acknowledged": true }
创建类型Mapping
PUT /baizhi # 创建index(baizhi)并添加类型mapping(_doc) { "mappings": { "_doc": { "properties": { "title": { "type": "text" }, # 注意: 字符串常用类型:text类型会分词 keyword类型不会分词 "name": { "type": "text" }, "age": { "type": "integer" }, "created": { "type": "date", "format": "strict_date_optional_time||epoch_millis" } } } } }
或
POST /baizhi/user # 创建index(baizhi)后,在指定index中添加类型mapping(user) { "user": { "properties": { "id": { "type": "text" }, "name": { "type": "text" }, "age": { "type": "integer" }, "created": { "type": "date", "format": "strict_date_optional_time||epoch_millis" } } } }
Mapping Type:
查看类型mapping
GET /baizhi/_mapping/_doc # 语法:GET /索引名/_mapping/类型名 ------------------------------------------- { "baizhi": { "mappings": { "_doc": { "properties": { "age": { "type": "integer" }, "created": { "type": "date" }, "name": { "type": "text" }, "title": { "type": "text" } } } } } }
注意:mapping types将会在ES 7.0版本中移除。原因可参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html#_why_are_mapping_types_being_removed
文档操作
新增单个文档
PUT /baizhi/_doc/1 # put /索引名/类型名/id { # request body "name":"zs", "title":"张三", "age":18, "created":"2018-12-25" }
或
POST /baizhi/_doc { "name":"ls", "title":"李四", "age":28, "created":"2018-12-26" } ------------------------------------------------------------- { "_index": "baizhi", "_type": "_doc", "_id": "KbOj6GcBVEuCC3JSh18Y", # ES自动生成的文档的id "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1 }
查询单个文档
GET /baizhi/_doc/1 # 语法: GET /索引名/类型名/id ------------------------------------------------------------------- { "_index": "baizhi", "_type": "_doc", "_id": "1", "_version": 1, "found": true, "_source": { "name": "zs", "title": "张三", "age": 18, "created": "2018-12-25" } } GET /baizhi/_doc/KbOj6GcBVEuCC3JSh18Y -------------------------------------------------------------------- { "_index": "baizhi", "_type": "_doc", "_id": "KbOj6GcBVEuCC3JSh18Y", "_version": 1, "found": true, "_source": { "name": "ls", "title": "李四", "age": 28, "created": "2018-12-26" } }
修改单个文档
PUT /baizhi/_doc/KbOj6GcBVEuCC3JSh18Y # 语法: PUT /索引名/类型名/id { "name":"lxs", "title":"李小四" } -------------------------------------------------------------------- { "_index": "baizhi", "_type": "_doc", "_id": "KbOj6GcBVEuCC3JSh18Y", "_version": 2, "found": true, "_source": { "name": "lxs", "title": "李小四" } }
删除单个文档
DELETE /baizhi/_doc/1 # 语法: DELETE /索引名/类型名/id -------------------------------------------------------------------- { "_index": "baizhi", "_type": "_doc", "_id": "1", "_version": 2, "result": "deleted", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 1, "_primary_term": 1 }
批处理操作
除了能够索引、更新和删除单个文档外,Elasticsearch还提供了使用
_bulk API批量执行上述任何操作的能力。这个功能非常重要,因为它提供了一种非常有效的机制,可以以尽可能少的网络往返尽可能快地执行多个操作
POST /baizhi/_doc/_bulk # 批量插入多个document {"index":{}} {"name":"ww","title":"王五","age":18,"created":"2018-12-27"} {"index":{}} {"name":"zl","title":"赵六","age":25,"created":"2018-12-27"} ------------------------------------------------------------------- { "took": 65, "errors": false, # 批量插入成功 "items": [ { "index": { "_index": "baizhi", "_type": "_doc", "_id": "KrOP6WcBVEuCC3JS8V9K", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1, "status": 201 } }, { "index": { "_index": "baizhi", "_type": "_doc", "_id": "K7OP6WcBVEuCC3JS8V9K", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1, "status": 201 } } ] }
POST /baizhi/_doc/_bulk # 批量操作(包含修改和删除) {"update":{"_id":"KrOP6WcBVEuCC3JS8V9K"}} # 修改 {"doc":{"title":"王小五"}} {"delete":{"_id":"K7OP6WcBVEuCC3JS8V9K"}} # 删除
相关文章推荐
- 使用python操作elasticsearch实现监控数据及kibana分析
- 不使用库实现栈的基本操作
- 使用 ElasticSearch 的 MoreLikeThis 实现基本的内容推荐
- Elasticsearch简单使用系列--详细介绍ES的核心概念
- 使用C++数组实现二叉树的存储和基本操作
- Android自动化-使用interface实现by定位、元素基本操作
- ElasticSearch学习(2)--使用Kibana连接ES(5.0以上版本)
- 仅使用基本的表操作实现两个排序后的表L1和L2的并集
- 使用C++链表来实现二叉树的存储和基本操作
- elasticsearch基本操作之--使用java操作elasticsearch
- Elasticsearch简单使用系列--详细介绍ES的核心概念
- Elasticsearch简单使用系列--使用Java API进行CRUD操作
- ElasticSearch的查询相关操作---使用es的api和结果遍历
- Lucene系列(二)luke使用及索引文档的基本操作
- 使用PreparedStatement实现查询操作系列一-----用户登录操作
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:实现基本的CRUD功能
- elasticsearch基本操作之--使用QueryBuilders进行查询
- [转]使用curl命令操作elasticsearch And 使用http 查询ES
- Elasticsearch简单使用系列--使用Rest API进行CRUD操作
- Hadoop的基本使用(3)——MapReduce的基本操作(实现字符统计)