Kibana入门教程

一、前言

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。

二、入门基础操作

2.1、查看集群健康状态

GET /_cat/health

2.2、查询索引信息

GET /_cat/indices

2.3、创建wzh索引

PUT /wzh

2.4、删除索引

DELETE /wzh

2.5、查看文档类型

GET /wzh/_doc/_type

#########################增删改查 start##############################

2.6、根据ID指定索引文档查询数据

GET /wzh/_doc/2

2.7、根据ID指定索引文档中添加数据

PUT /wzh/_doc/2{  "name":"李四",  "age":25}

2.8、根据ID更新索引中的文档

POST /wzh/_update/2{  "doc":{    "name":"李四1"  }}

#########################增删改查 end##############################

############################批量操作增加 start########################

POST /wzh/_doc/_bulk{"index":{"_id":"1"}}{"name": "John Doe1" }{"index":{"_id":"2"}}{"name": "Mary1" }

############################批量操作增加 end########################

三、高级查询

3.1、搜索全部

GET /wzh/_search{  "query": { "match_all": {} }}

3.2、分页搜索(from表示偏移量,从0开始,size表示每页显示的数量)

GET /wzh/_search{  "query": { "match_all": {} },  "from": 0,  "size": 2}

3.3、搜索排序(使用sort关键字 以balance字段排序,设置order属性的值为desc倒叙输出)

GET /wzh/_search{  "query": { "match_all": {} },  "sort": { "age": { "order": "desc" } }}

3.4、搜索并返回指定字段内容(_source: 将要查询出来的属性设置到_source数组中)

GET /wzh/_search{  "query": { "match_all": {} },  "_source": ["name"]}

3.5、条件搜索(搜索出name为Mary1的文档)

GET /wzh/_search
{
  "query": {
    "match": {
      "name": "Mary1"
    }
  }
}

3.6、条件搜索(搜索出name包含Mar的文档;对于数值类型match操作使用的是精确匹配,对于文本类型使用的是模糊匹配)

GET /wzh/_search{  "query": {    "match": {      "name": "Mary1"    }  },  "_source": [    "name",    "age"  ]}

3.7、短语匹配搜索

GET /wzh/_search{  "query": {    "match_phrase": {      "name": "Mary1"    }  }}

3.8、组合搜索(搜索name字段中同时包含mill和lane的文档)

GET /wzh/_search{  "query": {    "bool": {      "must": [        { "match": { "name": "mill" } },        { "match": { "name": "lane" } }      ]    }  }}

3.9、组合搜索(搜索name字段中包含mill或lane的文档)

GET /wzh/_search{  "query": {    "bool": {      "should": [        { "match": { "name": "mill" } },        { "match": { "name": "lane" } }      ]    }  }}

3.10、组合搜索(搜索name字段中同时不包含mill或lane的文档)

GET /wzh/_search{  "query": {    "bool": {      "should": [        { "match": { "name": "mill" } },        { "match": { "name": "lane" } }      ]    }  }}

3.11、组合搜索(搜索name字段中包含mill,并且不包含lane的文档)

GET /wzh/_search{  "query": {    "bool": {      "must": [        { "match": { "name": "mill" } }      ],      "must_not": [        { "match": { "name": "lane" } }      ]    }  }}

3.12、过滤搜索(过滤出age字段18~25的文档)

GET /wzh/_search{  "query": {    "bool": {      "must": { "match_all": {} },      "filter": {        "range": {          "age": {            "gte": 18,            "lte": 25          }        }      }    }  }}

3.13、搜索聚合(aggs)

####  aggs: 分组聚合关键字
####  group_by_state: 聚合条件名字,自定义
####  terms : 关键字,查询某个字段里含有多个关键词的文档
####  keyword: state是一个关键字类型#对age字段进行聚合,统计出相同age的文档数量
GET /wzh/_search{  "aggs":{    "group_by_state":{      "terms":{        "field":"age.keyword"      }    }  }}

3.14、取平均值

对age取平均值

GET /wzh/_search{  "size": 0,   "aggs":{    "avg_balance":{      "avg":{        "field": "age"      }    }  }}

3.14、聚合统计取平均值

### 对age字段进行聚合,统计出相同age的文档数量和age平均值
GET /wzh/_search{  "size": 0,   "aggs":{    "group_by_state":{      "terms":{        "field":"age.keyword"      }    },    "avg_balance":{      "avg":{        "field": "age"      }    }  }}

posted on 2026-08-10 15:33  爱河  阅读(1)  评论(0)    收藏  举报

导航