kibana操作elasticsearch(增删改查)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 1. 环境安装
  • 2. es与mysql对比在这里插入图片描述
  • 3. kibana界面
  • 4. 创建索引
  • 5. 删除索引
  • 6. 查看ES相关信息
    • 6.1 查看es健康状态
    • 6.2 查看es的节点
      • 6.2.1 查看es的所有节点
      • 6.2.2 查看es的主节点
    • 6.3 查看es的索引
      • 6.3.1 查看es的所有索引
      • 6.3.2 查看es的所有索引并指定响应返回的数据格式
      • 6.3.3 查看es的索引设置
  • 7. 新增文档数据
    • 7.1 自定义文档id可用PUT
    • 7.2 系统默认文档id可用POST
  • 8. 查询文档数据
    • 8.1 查询全部文档数据
    • 8.2 查询单个记录
    • 8.3 查询文档的字段数据
    • 8.3 条件查询文档数据
      • 8.3.1 根据指定字段的值查询对应数据
      • 8.3.2 根据指定字段的值(多个值)查询对应数据
      • 8.3.3 根据指定字段的值(多个值)查询对应数据(短句匹配)
      • 8.3.4 根据指定字段的值(多个值)查询对应数据(精确匹配)
      • 8.3.5 多字段匹配条件查询
      • 8.3.6 符合条件查询
      • 8.3.7 过滤条件查询
    • 8.4 条件查询文档数据(分页、排序、展示)
  • 9. 修改/更新文档数据
    • 9.1 PUT修改
    • 9.2 POST更新
  • 10. 删除文档数据
    • 10.1 删除单个文档数据
    • 10.2 删除某索引下的所有文档
  • 11. 批量操作bulk
    • 11.1 批量删除
    • 11.2 批量新增(需要有请求体)
    • 11.3 批量索引(需要有请求体)
    • 11.4 批量更新


1. 环境安装

先安装elasticsearch和kibana
可参考:
elasticsearch下载、安装、配置
kibana下载、安装、配置

2. es与mysql对比在这里插入图片描述

索引index即数据库table
类型type即表数据类型
文档document即数据记录row就是一条记录
字段field即数据字段信息column

3. kibana界面

安装好kibana和es之后,先启动es再启动kibana
然后访问kibana界面,找到management中的dev tools进行es的增删改查操作
在这里插入图片描述
在界面的Console控制台输入并执行命令,每行命令后会有一个绿色三角形,点击即可运行命令
在这里插入图片描述

4. 创建索引

语法格式:

PUT 索引名

如创建索引名为deviceinfo的索引

PUT deviceinfo

注:不能有特殊字符,不能有大写字母,支持纯小写

也可以创建索引时设置索引,不设置则使用系统默认设置

PUT deviceinfo/
{"settings":{"index":{"number_of_shards":2,"number_of_replicas":1}}
}

number_of_shards 分片数量,建立后不可修改
number_if_replicas 备份数量

5. 删除索引

语法格式:

DELETE 索引名

如删除索引名为deviceinfo的索引

DELETE deviceinfo

6. 查看ES相关信息

6.1 查看es健康状态

GET _cat/health

或加上v参数输出详细信息

GET _cat/health?v

6.2 查看es的节点

6.2.1 查看es的所有节点

GET _cat/nodes

或加上v参数输出详细信息

GET _cat/nodes?v

6.2.2 查看es的主节点

GET _cat/master

6.3 查看es的索引

6.3.1 查看es的所有索引

GET _cat/indices

或加上v参数输出详细信息

GET _cat/indices?v

6.3.2 查看es的所有索引并指定响应返回的数据格式

GET _cat/indices?format=json

6.3.3 查看es的索引设置

语法格式:

GET 索引名/_settings

如查看索引名为deviceinfo的索引设置

GET deviceinfo/_settings

在这里插入图片描述

7. 新增文档数据

新增文档可用PUT或POST

7.1 自定义文档id可用PUT

新增数据时带有文档id参数(自己定义命名的)的情况,用PUT
语法格式:

PUT 索引名/类型名/文档id
{字段名1:字段值1,字段名2:字段值2,字段名3:字段值3
}

如新增索引deviceinfo下类型为netinfo文档id为1的文档数据

PUT deviceinfo/netinfo/1
{"net_name":"http001","net_type":"3g","net_size":"0.15M"
}

执行后结果如下
在这里插入图片描述

7.2 系统默认文档id可用POST

当新增的参数中不加文档id参数时,则用POST,新增后系统自动生成默认的文档id(一个字符串)
语法格式:

POST 索引名/类型名/
{字段名1:字段值1,字段名2:字段值2,字段名3:字段值3
}

如新增索引deviceinfo下类型为netinfo文档id为1的文档数据

POST deviceinfo/netinfo/
{"net_name":"http002","net_type":"3g","net_size":"0.17M"
}

注:如果使用默认的文档id,前提是这个类型必须是已经存在的,如果是新增的类型不带文档id执行命令会失败
新增后结果如下
在这里插入图片描述

8. 查询文档数据

到指定的索引、类型查看文档数据

8.1 查询全部文档数据

语法格式:

GET 索引名/类型名/_search

或者

GET 索引名/类型名/_search
{"query":{"match_all":{}}
}

如查询索引名为deviceinfo类型为netinfo的文档数据

GET deviceinfo/netinfo/_search

或者

GET deviceinfo/netinfo/_search
{"query":{"match_all":{}}
}

执行命令可以查看到之前插入的两条文档数据,结果如下
在这里插入图片描述

8.2 查询单个记录

语法格式:

GET 索引名/类型名/文档id

如查询索引名为deviceinfo类型名为netinfo中文档id为1的数据

GET deviceinfo/netinfo/1

结果如下
在这里插入图片描述

8.3 查询文档的字段数据

语法格式:

GET 索引名/类型名/文档id?_source=字段名1,字段名2

如查询索引名为deviceinfo类型名位netinfo文档id为1字段名为net_name和net_type的数据

GET deviceinfo/netinfo/1?_source=net_name,net_type

查询结果如下
在这里插入图片描述

8.3 条件查询文档数据

8.3.1 根据指定字段的值查询对应数据

GET /索引名/_search
{"query":{"match":{"字段名":"字段值"}}
}

8.3.2 根据指定字段的值(多个值)查询对应数据

查询字段名的值为值1和值2的数据

GET /索引名/_search
{"query":{"match":{"字段名":"字段值1 字段值2"}}
}

8.3.3 根据指定字段的值(多个值)查询对应数据(短句匹配)

查询字段名的值为值1和值2的数据
match_phrase短句匹配,不会对查询条件进行分词检索

GET /索引名/_search
{"query":{"match_phrase":{"字段名":"字段值1 字段值2"}}
}

8.3.4 根据指定字段的值(多个值)查询对应数据(精确匹配)

查询字段名的值为值1和值2的数据
match_phrase短句匹配
字段名后加.keyword表示精确匹配,匹配的条件就是要显示字段的全部值,要进行精确匹配的

GET /索引名/_search
{"query":{"match_phrase":{"字段名.keyword":"字段值1 字段值2"}}
}

8.3.5 多字段匹配条件查询

查询字段名的值为值1和值2的数据
multi_match表示多字段匹配查询方式
query是多个字段的对应的同一个值
fields表示多个字段的集合
如下为查询字段名1和字段名2的值都为字段值的数据

GET /索引名/_search
{"query":{"multi_match":{"query":"字段值""fields":["字段名1","字段名2"]}}
}

8.3.6 符合条件查询

bool表示符合查询
must表示必须达到must列举的所有条件
must_not表示必须不匹配must_not列举的所有条件
should表示应该满足should所列举的条件,类似or
达到should列举的条件,如果达到会增加相关文档的评分,不会改变查询的结果
如果query中只有should且只有一种匹配规则,则should的条件就会被作为默认匹配条件而去改变查询结果

GET /索引名/_search
{"query":{"bool":{"should":[{"match":{"字段名1":"字段值1"}},{"match":{"字段名2":"字段值2"	}}],"must":[{"match":{"字段名3":"字段值3"}}	]}}
}

8.3.7 过滤条件查询

filter结果过滤,不计算得分,不是所有的查询都会产生分数,仅用于filter的文档查询更不会产生分数

GET /索引名/_search
{"query":{"bool":{"must":[{"match":{"字段名1":"字段值1"}}],"filter":{"range":{"过滤字段名":{"gte":"10","lte":"100"	}	}}}}
}

更多查询技巧请参考:kibana操作es

8.4 条件查询文档数据(分页、排序、展示)

可添加如下参数进行条件查询、分页查询、排序、指定字段查询

GET 索引名/_search
{"query":{"match_all":{}},"from":0,"size":5,"sort":{"排序字段名":{"order":"desc"}},"_source":["字段名1","字段名2"]
}

注:
match_all 查询类型,查询所有
from 分页查询从0开始
size 分页查询每页5个
sort 排序,可指定字段进行排序
_source 指定查询结果展示的字段,支持多个

9. 修改/更新文档数据

可用PUT方式或者POST方式

9.1 PUT修改

PUT属于修改,必须包含文档id
语法格式:

PUT 索引名/类型名/文档id
{"字段名1":"新的字段值1","字段名2":"新的字段值2","字段名3":"新的字段值3"
}

如修改索引名为deviceinfo类型名为netinfo文档id为1的文档数据

PUT deviceinfo/netinfo/1
{"net_name":"http003","net_type":"4g","net_size":"0.28M"
}

查询修改后的内容

GET deviceinfo/netinfo/1

内容已更新
在这里插入图片描述

9.2 POST更新

使用post进行更新数据
POST属于新增,
当不带_update时,没有文档id则会新增文档id,属于新增数据,有id时则执行修改操作
当带_update时,会比较doc中的字段值是否一致,一致则不修改,不一致则修改
当不带_update时,重复执行更新操作,数据更新反馈是成功

语法格式:

POST 索引名/类型名/文档id/_update
{"doc":{"字段名":"新的字段值"}
}

如修改索引名为deviceinfo类型名为netinfo文档id为1字段名为net_name的值

POST deviceinfo/netinfo/1/_update
{"doc":{"net_name":"http004"}
}

修改后查询结果如下

GET deviceinfo/netinfo/1

在这里插入图片描述

10. 删除文档数据

10.1 删除单个文档数据

语法格式:

DELETE 索引名/类型名/文档id

如删除索引名为deviceinfo类型名为netinfo文档id为1的数据

DELETE deviceinfo/netinfo/1

10.2 删除某索引下的所有文档

POST deviceinfo/_delete_by_query
{"query":{"match_all":{}}
}

11. 批量操作bulk

11.1 批量删除

语法格式:

POST /索引名/类型名/_bulk
{"delete":{"_index":"索引名","_type":"类型名","_id":"文档id"}}

POST /deviceinfo/netinfo/_bulk
{"delete":{"_index":"deviceinfo","_type":"netinfo","_id":"1"}}

11.2 批量新增(需要有请求体)

语法格式:

POST /索引名/类型名/_bulk
{"create":{"_index":"索引名","_type":"类型名","_id":"文档id1"}}
{"字段名":"字段值"}
{"create":{"_index":"索引名","_type":"类型名","_id":"文档id2"}}
{"字段名":"字段值"}

或者

POST /索引名/类型名/_bulk
{"index":{}}
{"字段名1":"字段值1","字段名2":"字段值2"}
{"index":{}}
{"字段名3":"字段值3","字段名4":"字段值4"}

POST /deviceinfo/netinfo/_bulk
{"create":{"_index":"deviceinfo","_type":"netinfo","_id":"1"}}
{"net_name":"http1001"}

11.3 批量索引(需要有请求体)

语法格式:

POST /索引名/类型名/_bulk
{"index":{"_index":"索引名","_type":"类型名"}}
{"字段名":"字段值"}

注:没有指定id系统会自动生成

POST /deviceinfo/netinfo/_bulk
{"index":{"_index":"deviceinfo","_type":"netinfo"}
{"net_name":"http1002"}

11.4 批量更新

语法格式:

POST /索引名/类型名/_bulk
{"update":{"_index":"索引名","_type":"类型名","_id":"文档id"}}
{"doc":{"字段名":"字段值"}}

POST /deviceinfo/netinfo/_bulk
{"update":{"_index":"deviceinfo","_type":"netinfo","_id":"1"}}
{"doc":{"net_name":"http1003"}}

注:更新时不能缺失_id,文档不存在更新会失败


感谢阅读,祝君暴富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/139827.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读 Memory Enhanced Global-Local Aggregation for Video Object Detection

Memory Enhanced Global-Local Aggregation for Video Object Detection Abstract 人类如何识别视频中的物体?由于单一帧的质量低下,仅仅利用一帧图像内的信息可能很难让人们在这一帧中识别被遮挡的物体。我们认为人们识别视频中的物体有两个重要线索&…

vue3学习源码笔记(小白入门系列)------KeepAlive 原理

目录 说明组件是如何被缓存的,什么时候被激活对于KeepAlive 中组件 如何完成激活的对于KeepAlive 中组件 如何完成休眠的 总结 说明 Vue 内置了 KeepAlive 组件,实现缓存多个组件实例切换时,完成对卸载组件实例的缓存,从而使得组…

信号隔离的利器:光耦合器的应用与重要性 | 百能云芯

在当今数字化和电子技术的时代,各种电子设备和电路在我们的日常生活和工作中扮演着至关重要的角色。为了使这些设备正常运行并确保它们之间的相互作用,一种叫做光耦合器(CTR)的元件扮演着重要的连接桥梁角色。接下来云芯将带您深入…

abap中程序跳转(全)

1.常用 1.CALL TRANSACTION 1.CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK [AND SKIP FIRST SCREEN]. 其中ta为事务码tcode使用时要打单引号() 2. CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK USING bdc_tab { {[MODE mode] [UPDATE u…

基于tornado BELLE 搭建本地的web 服务

我的github 将BELLE 封装成web 后端服务,采用tornado 框架 import timeimport torch import torch.nn as nnfrom gptq import * from modelutils import * from quant import *from transformers import AutoTokenizer import sys import json #import lightgbm a…

FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现 UDP 网络视频传输,提供工程和QT上位机源码加技术支持

目录 1、前言版本更新说明免责声明 2、我这里已有的以太网方案3、设计思路框架视频源选择OV5640摄像头配置及采集动态彩条UDP协议栈UDP视频数据组包UDP协议栈数据发送UDP协议栈数据缓冲IP地址、端口号的修改Tri Mode Ethernet MAC1G/2.5G Ethernet PCS/PMA or SGMIIQT上位机和源…

【动态规划】392. 判断子序列、115. 不同的子序列

提示:努力生活,开心、快乐的一天 文章目录 392. 判断子序列💡解题思路🤔遇到的问题💻代码实现🎯题目总结 115. 不同的子序列💡解题思路🤔遇到的问题💻代码实现&#x1f3…

将Sketch文件转化为PSD文件的简单在线工具!

设计工作不仅需要UI设计工具,还需要Photoshop。常见的UI设计工具Sketch与Photoshop软件不兼容。如果你想在实际工作中完成Sketch转psd,你需要使用其他软件进行转换。但是在转换过程中容易丢失文件,导致同样的工作需要重复多次才能完成&#x…

模型量化笔记--KL散度量化

KL散度量化 前面介绍的非对称量化中,是将数据中的min值和max值直接映射到[-128, 127]。 同样的,前面介绍的对称量化是将数据的最大绝对值 ∣ m a x ∣ |max| ∣max∣直接映射到127。 上面两种直接映射的方法比较粗暴,而TensorRT中的int8量化…

气膜式仓库:灵活创新,助力企业储存与物流升级

气膜式大空间仓库的建设不受地面条件限制,为企业提供了极大的便利。合理的仓储系统不仅是企业和厂商提高货品流动速度、确保生产、储运、配送顺利进行的关键,也是现代物流发展的需要。传统建筑在使用中存在一些不足,因此,我们需要…

VR数字政务为我们带来了哪些便捷之处?

每每在政务大厅排队的时候,总是在想未来政务服务会变成什么样子呢?会不会变得更加便捷呢?今天我们就来看看VR数字政务,能够为我们带来哪些便捷之处吧! 传统的政务服务中,不仅办事流程复杂,而且每…

【经验分享】解决vscode编码问题

目录 先看一下我遇到的问题和你们的一不一样 下面是我查到的解决办法: 简单点说就是 我们看看解决后的效果 先看一下我遇到的问题和你们的一不一样 我一开始以为就是编码问题。 下面是我查到的解决办法: 这个错误提示看起来仍然是中文乱码。可能是由于…