Kibana
Kibana
简介:Kibana是一个ES索引库数据统计工具,可以利用ES的聚合功能,生成各种图表,如柱形图,线状图,饼图等。
而且还提供了操作ES索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习ES的语法。
下载镜像
运行容器
kibana启动一般比较慢,需要多等待一会
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
命令解释:
- `--network es-net` :加入一个名为es-net的网络中,与es在同一个网络中
- `-e ELASTICSEARCH_HOSTS=http://es:9200"`:设置es的地址,因为kibana已经与es在一个网络,因此可以用容器名直接访问elasticsearch
- `-p 5601:5601`:端口映射配置
访问
在浏览器输入地址访问:http://192.168.248.128:5601
,即可看到结果
kibana之DevTools界面
这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。
Head 浏览器插件
Head是一款用于查看ES数据库的浏览器插件,我们需要在Chrome浏览器中加载这个插件
安装完后界面:
简单操作索引 映射 文档
操作索引
* 创建: PUT /索引库名
PUT /itheima
* 查询: GET /索引库名
GET /itheima
* 删除: DELETE /索引库名
DELETE /itheima
创建映射
PUT /索引库名/_mapping
{
"properties": {
"字段名": {
"type": "类型", // 类型,可以是text、keyword、long、short、date、integer、object等
"index": true, // 是否索引,默认为true,不索引的字段后面是不能作为查询条件的
"analyzer": "分词器", //分词器
"properties":"子字段" //该字段的子字段
}
}
}
- 字符:text(可分词,比如住址)、keyword(不可分词,比如邮箱)
- 数值:long、interger、short、byte、double
- 日期:date,但是建议存储为毫秒值(long)节省空间
- 数组:
- 对象:此类型会被保存为多个字段,例如下面的name,会保存为:name.firstName和name.lastName
示例:
PUT /suoyinkuming/_mapping/
{
"properties": {
"title": {
"type": "text",
"analyzer":"ik_max_word"
},
"images": {
"type": "keyword",
"index": false
},
"price": {
"type": "float"
},
"name":{
"properties": {
"firstName":{
"type":"keyword"
},
"lastName":{
"type":"keyword"
}
}
}
}
}
查看映射
* GET /索引库名/_mapping
GET /itheima/_mapping
创建索引和映射
语法:
PUT /索引库名
{
"mappings":{
"properties":{
"字段名":{
"映射属性名":"映射属性值"
}
}
}
}
示例:
PUT /suoyinkuMing
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer":"ik_max_word"
},
"images": {
"type": "keyword",
"index": false
},
"price": {
"type": "float"
},
"name":{
"properties": {
"firstName":{
"type":"keyword"
},
"lastName":{
"type":"keyword"
}
}
}
}
}
}
操作文档
创建文档
POST /索引库名/_doc/[id] // id是主键,可以自定义,也可以自动生成
{
"key": "value"
}
示例:
POST /kuming/_doc/1
{
"title": "华为手机",
"images": "http://image.leyou.com/12479122.jpg",
"price": 2699,
"name":{
"firstName":"云",
"lastName":"赵"
}
}
POST /kuming/_doc
{
"title": "华为手机",
"images": "http://image.leyou.com/12479122.jpg",
"price": 2699,
"name":{
"firstName":"云",
"lastName":"赵"
}
}
查看文档
GET /索引库名/_doc/编号
修改文档
全量修改:根据指定的id删除文档,然后新增一个相同id的文档(覆盖原有的内容)
#语法:
PUT /索引库名/_doc/文档id
{
"字段1": "值1",
"字段2": "值2"
}
#示例:
POST /kuming/_doc/1
{
"title": "华为手机",
"images": "http://image.leyou.com/12479122.jpg",
"price": 2699,
"name":{
"firstName":"云",
"lastName":"赵"
}
}
增量修改:根据指定id修改的文档中的部分字段
#语法:
POST /索引库名/_update/文档id
{
"doc": {
"字段名": "新的值"
}
}
#示例:
POST /kuming/_update/1
{
"doc":{
"price": 3699
}
}
删除文档
DELETE /索引库名/_doc/id值
DELETE kuming/_doc/1