kibana的Dev Tool中如何对es进行增删改查
kinaba Dev Tool中对es(elasticSearch)进行增删改查
一、查询操作
查询语句基本语法
以下语句类似于mysql的: select * from xxx.yyy.topic where 条件1,条件2,...条件N
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
这里面是限制条件,不写则查所有数据
可以包含单个或多个限制条件
}
}
}
select * from xxx.yyy.topic where 条件1
GET xxx.yyy.topic/logs/_search
{
"query": {
这里只能是单个条件
}
}
详细说明:
GET xxx.yyy.topic/logs/_search中
xxx.yyy.topic 对应字段_index 即索引字段 相当于mysql中的数据库名称
logs 对应字段_type 相当于mysql中的表名
_id 相当于mysql中的主键
_search 这表示执行查询操作
_source 相当于mysql表中的列的集合
bool体中是一个或多个基本查询的组合,可在bool里面使用以下参数:
must 文档中必须包含must后的条件
must_not 文档中必须不包含must_not后的条件
should 满足should后的任何一个条件
filter filter后跟过滤条件

1、select * from xxx.yyy.topic
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"must": {
"match_all": {}
}
} }
}
或者
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {}
}
}
或者
GET xxx.yyy.topic/logs/_search
{
"query": {
"match_all": {}
}
}
如果在index下只有一种_type,则在GET中可以不带_type
GET xxx.yyy.topic/_search
{
"query": {
"bool": {}
}
}
2、 select * from xxx.yyy.topic where login = 'BigFaceCat' and pwd='123'
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"login.keyword": "BigFaceCat"
}
},
{
"match": {
"pwd.keyword": "123"
}
}
]
}
}
}
3、查询语句 select * from xxx.yyy.topic where update_time > 1591200000000 and update_time<1591200000000
select * from xxx.yyy.topic where update_time between 1591200000000 and 1591200000000
GET xxx.yyy.topic/logs/_search
{
"query":{
"bool":{
"must":[
{
"range":{
"update_time":{
"gte":1591200000000,
"lte":1591362000000
}
}
}
]
}
}
}
GET xxx.yyy.topic/logs/_search
{
"query":{
"bool":{
"filter":[
{
"range":{
"update_time":{
"gte":1591200000000,
"lte":1591362000000
}
}
}
]
}
}
}
gte :表示 >=
lte : 表示<=
gt : 表示>
lt : 表示<
4、查询语句 select * from xxx.yyy.topic where update_time > 1591200000000 and update_time<1591200000000 and login='BigFaceCat'
{
"query":{
"bool":{
"must":[
{
"range":{
"update_time":{
"gte":1591200000000,
"lte":1591362000000
}
}
},
{
"match":{
"login.keyword":"BigFaceCat"
}
}
]
}
}
}
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"must":{ "match":{"login.keyword":"BigFaceCat"}},
"filter": {
"range": {
"update_time": {
"gte": 1591200000000,
"lte": 1591362000000
}
}
} }
}
}
5、查询语句 select * from xxx.yyy.topic where login='BigFaceCat' or login='LittlteFaceCat'
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"should": [
{ "match": { "login.keyword": "BigFaceCat" }},
{ "match": { "login.keyword": "LittlteFaceCat"}}
]
}
}
}
6、select * from xxx.yyy.topic where login is null
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "login"
}
}
}
}
}
7、select * from xxx.yyy.topic where login is not mull
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"must": {
"exists": {
"field": "login"
}
}
}
}
}
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"filter": {
"exists": {
"field": "login"
}
}
}
}
}
8、select * from xxx.yyy.topic where login in ('BigFaceCat','LittlteFaceCat')
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"must": [
{
"match": { "login.keyword": "BigFaceCat" }
},
{
"match": { "login.keyword": "LittlteFaceCat" } }
]
}
}
}
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool":{
"filter":{
"terms":{ "login":["BigFaceCat","LittleFaceCat"]}
}
}
}
}
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool":{
"should": [
{ "term":{ "login":"BigFaceCat"} },
{ "term":{ "login":"LittleFaceCat"} }
]
}
}
}
terms : 后面可跟多个值
term : 后面只能有一个值
9、select call_id , record_id from xxx.yyy.topic where _id = 'eecd25747'
GET xxx.yyy.topic/logs/_search
{
"_source": ["call_id","record_id"],
"query": {
"match": { "_id": "eecd25747a"}
} }
select call_id , record_id from xxx.yyy.topic where login='BigFaceCat' and pwd='123'
GET xxx.yyy.topic/logs/_search
{
"_source": ["call_id","record_id"],
"query": {
"bool": {
"must": [
{
"match": {
"login.keyword": "BigFaceCat"
}
},
{
"match": {
"pwd.keyword": "123"
}
}
]
}
}
}
10、聚合查询 select sum( talk_duration) as sum_of_talkDuration from xxx.yyy.topic
GET xxx.yyy.topic/logs/_search
{
"aggs": {
"sum_of_talkDuration":{
"sum":{
"field": "talk_duration"
}
} }
}
select sum( talk_duration) as sum_of_talkDuration from xxx.yyy.topic where end_time is not null
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {
"must": [
{"exists":{"field":"end_time"}}
]
}
}, "aggs": {
"sum_of_talkDuration":{
"sum":{
"field": "talk_duration"
}
} }
}


11、select SUM( DISTINCT talk_duration) as sum_of_diffTalkDuration from xxx.yyy.topic
GET xxx.yyy.topic/logs/_search
{
"size":0,
"aggs": {
"sum_of_diffTalkDuration":{
"cardinality":{
"field": "talk_duration"
}
} }
}
12、求平均值 SELECT AVG( record_duration ) as avg_of_talkDurtion FROM xxx.yyy.topic
GET xxx.yyy.topic/logs/_search
{
"size":0,
"aggs": {
"avg_of_talkDuration":{
"avg":{
"field": "talk_duration"
}
}
}
13、求最大值 SELECT MAX( record_duration ) as max_of_talkDurtion FROM xxx.yyy.topic
GET xxx.yyy.topic/logs/_search
{
"size":0,
"aggs": {
"max_of_talkDuration":{
"max":{
"field": "talk_duration"
}
}
}
14、对查询结果排序 select * from xxx.yyy.topic order by talk_duration desc
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": { }
}, "sort": [{ "talk_duration": "desc" }] }
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": {}
},
"sort": [
{ "talk_duration": {"order": "desc"} }
] }
desc : 降序排序
asc : 升序排序
15、分页查询
GET xxx.yyy.topic/logs/_search
{
"query": {
"bool": { }
},
"sort": [{ "talk_duration": {"order": "desc"} }],
"from": 2,
"size": 3 }
from : 起始页
size : 按size条记录分页
如上查询:按每页3条记录分页,返回第2页
16、通过主键_id查询 select * from xxx.yyy.topic where _id = 'AXKRp4hXdhuuEZQaKj7n'
GET xxx.yyy.topic/logs/AXKRp4hXdhuuEZQaKj7n
17、通过主键_id查询某些字段 select phone_number,system_code, extension from xxx.yyy.topic where _id='AXKRp4hXdhuuEZQaKj7'
GET xxx.yyy.topic/logs/AXKRp4hXdhuuEZQaKj7n?_source=phone_number,system_code,extension
二、修改操作
1、通过查询条件来限定修改范围的方式
update xxx.yyy.topic set result='[{\"aWord\":\"1哈哈哈哈\",\"count\":1,\"locations\":[\"00:05-00:08\",\"01:01-01:02\"]}]'
where update_time >= 1591200000000 and update_time <= 1591362000000
json串中带有特殊字符",需要用\进行转义
POST xxx.yyy.topic/logs/_update_by_query
{
"query": {
"bool": {
"must": [
{
"range": {
"update_time": {
"gte": 1591200000000,
"lte": 1591362000000
}
}
}
]
}
},
"script": {
"source": "ctx._source['result']='[{\"aWord\":\"1哈哈哈哈\",\"count\":1,\"locations\":[\"00:05-00:08\",\"01:01-01:02\"]}]'"
}
}
2、用主键作作为条件修改的方式
update xxx.yyy.topic set result='[{\"aWord\":\"1哈哈哈哈\",\"count\":1,\"locations\":[\"00:05-00:08\",\"01:01-01:02\"]}'
where _id='xx-b2fc-43ca-afe7-77e3ff406ff9'
注意:json中带有特殊字符,需要两个"""包起来
POST xxx.yyy.topic/logs/xx-b2fc-43ca-afe7-77e3ff406ff9/_update
{
"doc":{
"result": """[{"aWord":"1哈哈哈哈","count":1,"locations":["00:05-00:08","01:01-01:02"]}]"""
}
}
POST xxx.yyy.topic/logs/xx-b2fc-43ca-afe7-77e3ff406ff9/_update
{ "doc":{
"result": "哈哈哈" }
}
kibana的Dev Tool中如何对es进行增删改查的更多相关文章
- Django中对单表的增删改查
之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象 book_obj=Book.objects.creat ...
- Django学习笔记--数据库中的单表操作----增删改查
1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...
- Django中ORM对数据库的增删改查操作
前言 什么是ORM? ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...
- Django中ORM对数据库的增删改查
Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...
- ES 16 - 对Elasticsearch中的索引数据进行增删改查 (CRUD)
目录 1 创建document 1.1 创建时手动指定id 1.2 创建时自动生成id 2 查看document 2.1 根据id查询文档 2.2 通过_source字段控制查询结果 3 修改docu ...
- java中如何操作数据库(增删改查)
EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体B ...
- python中列表的常用操作增删改查
1. 列表的概念,列表是一种存储大量数据的存储模型. 2. 列表的特点,列表具有索引的概念,可以通过索引操作列表中的数据.列表中的数据可以进行添加.删除.修改.查询等操作. 3. 列表的基本语法 创建 ...
- es数据增删改查
设置最大查询条数 curl -XPUT 'http://10.121.8.5:9200/zdl_mx_shzt_ztdf/_settings' -d'{"index":{" ...
- 关于js对象中的,属性的增删改查问题
删除主要是delet方法: 1 function Person(){}; 2 var person = new Person(); 3 person.name = 'yy'; 4 person.gen ...
随机推荐
- spark机器学习从0到1介绍入门之(一)
一.什么是机器学习 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行 ...
- 5.2 Go 包与函数
5.2 Go 包与函数 在多个包中相互调用函数,需要用到Go包的知识. 代码组织如下: 思路: 1.定义功能函数calc放入到utils.go,将utils.go放在utils文件夹/包中,当其他文件 ...
- 3.4 Go字符型
1. Go字符型 Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte 来保存. 普通字符串就是一串固定长度的字符连接起来的字符序列. Go 的字符串是由单个字节连接起来 ...
- 【Java_集合框架Set】HashSet、LinkedHashSet、TreeSet使用区别
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放: LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代: Tree ...
- python脚本实现接口自动化轻松搞定上千条接口用例
接口自动化目前是测试圈主流的一个话题,我也在网上搜索了很多关于自动化的关键词,大多数博主分享的python做接口自动化都是以开源的框架,比如:pytest.unittest+ddt(数据驱动) 最常见 ...
- Word使用技巧——持续更新
Q1:word 2007 打开后默认显示缩略图而不是文档结构图? A1:三步曲 1)打开word,关闭缩略图,保存并关闭文档 2)重新打开word(此时应该没有显示缩略图),勾选上“文档结构图”,保存 ...
- 《机器学习_08_代价敏感学习_添加sample_weight支持》
简介 这一节主要是为模型打补丁,在这之前笔者已经介绍并实现了几种典型的机器学习模型,比如线性回归.logistic回归.最大熵.感知机.svm等,但目前它们都有一个共性,那就是构造的损失函数对每个样本 ...
- 项目readme文件目录生成工具 treer
生成目录的工具呢有tree和treer,但是tree不知道怎么忽略node_modules文件夹, 而treer就简单了,下面就是基本的命令了 其中-i是指忽略xxx, -e是指导出 安装 npm i ...
- 【Java】向*.txt文档里面重复添加同一个字符串
闺蜜说让我用代码写五万个对不起给她~~ import java.io.FileWriter; import java.io.IOException; /** * Created by lenovo o ...
- pyinstaller打包pyqt5,从入坑到填坑,详解
以上省略pyinstaller安装步骤,直入主题.先分享我的心路历程. 1.pyinstaller -F -i 1.ico UI_Main.py (先在CMD中 cd到 py文件对应的路径) 第一步打 ...