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'

GET xxx.yyy.topic/logs/_search
{
    "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进行增删改查的更多相关文章

  1. Django中对单表的增删改查

    之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象   book_obj=Book.objects.creat ...

  2. Django学习笔记--数据库中的单表操作----增删改查

    1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...

  3. Django中ORM对数据库的增删改查操作

         前言 什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...

  4. Django中ORM对数据库的增删改查

    Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...

  5. ES 16 - 对Elasticsearch中的索引数据进行增删改查 (CRUD)

    目录 1 创建document 1.1 创建时手动指定id 1.2 创建时自动生成id 2 查看document 2.1 根据id查询文档 2.2 通过_source字段控制查询结果 3 修改docu ...

  6. java中如何操作数据库(增删改查)

    EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体B ...

  7. python中列表的常用操作增删改查

    1. 列表的概念,列表是一种存储大量数据的存储模型. 2. 列表的特点,列表具有索引的概念,可以通过索引操作列表中的数据.列表中的数据可以进行添加.删除.修改.查询等操作. 3. 列表的基本语法 创建 ...

  8. es数据增删改查

    设置最大查询条数 curl -XPUT 'http://10.121.8.5:9200/zdl_mx_shzt_ztdf/_settings' -d'{"index":{" ...

  9. 关于js对象中的,属性的增删改查问题

    删除主要是delet方法: 1 function Person(){}; 2 var person = new Person(); 3 person.name = 'yy'; 4 person.gen ...

随机推荐

  1. 【雕爷学编程】Arduino动手做(62)---1排4键薄膜开关模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  2. RenderBox使用说明书&原理浅析

    本文基于1.12.13+hotfix.8版本源码分析. 0.目录 一.RenderBox的用法 1.RenderBox的使用基本流程 2.RenderObjectWidget 3.非容器控件的hitT ...

  3. 笔记二(JavaWeb)

    上一个笔记写的好累,这次换Markdown试试 缺省适配器设计模式:父类不实现该方法,让子类去实现(抽象方法) 模板方法设计模式:定义一个操作中的方法骨架,而将一些步骤延迟到子类中.模板方法使得子类可 ...

  4. Spring Bean 后置处理器

    Bean 后置处理器允许在调用初始化方法前后对 Bean 进行额外的处理. BeanPostProcessor 接口定义回调方法,你可以实现该方法来提供自己的实例化逻辑,依赖解析逻辑等. 你也可以在 ...

  5. 点双连通分量F. Simple Cycles Edges

    F. Simple Cycles Edges time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  6. .Net基础之3——运算符

    (3)Convert类型转换 1.类型如果相兼容的两个变量,可以使用自动类型转换或者显示类型转换. 但是如果两个类型的变量不兼容,这个时候可以使用一个叫做Convert的转换工厂进行转换. 注意:使用 ...

  7. 服务治理:Spring Cloud Eureka

    Spring Cloud Eureka主要负责完成微服务架构中服务治理功能. 服务治理是微服务架构中最为核心和基础模块,主要用来实现各个微服务实例的自动注册和发现. 服务注册 微服务实例启动后向注册中 ...

  8. windows 10 2016 企业版 长期服务 激活方式

    试了很多,失败. 使用这个ok———————————————————————————————— 使用方式: 2.1.下载AAct.exe  https://www.baidu.com/link?url ...

  9. Docker的iptables规则在iptables重启后丢失

    前因后果 1.在跳板机上使用ansible命令测试机器B时,报错如下,于是就怀疑是网络防火墙的问题 10.10.0.86 | FAILED >> { "failed": ...

  10. 微信小程序订阅

    微信小程序订阅 摘要 1.基于promise封装微信小程序订阅 2.解决由于微信基础库版本低下的兼容 3.解决“总是保持以上选择,不再询问”的取消状态 主要运用API: requestSubscrib ...