定义DSL

官方文档:https://www.elastic.co/guide/en/kibana/7.14/api.html

  • elasticsearch 提供了基于json的完整query DSL (domain specifc languge领域特定语言)来定义查询

查看es的全部索引信息及表头

GET http://10.11.0.1:9200/_cat/indices?v

查看单个索引信息

GET http://10.11.0.1:9200/ingress_access_2022.11.22

全文检索-match查询

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"match": {"upstream_status": 500 }}
}#查询状态码为500的

完全匹配-match_phrse查询

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"match_phrase": {"env_name": "test"}}
}
#查询环境名为test精确查找

全量查询-match_all

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"match_all": {}}
}

分页查询

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"match_all": {}}"size": 7"from": 28
}#size:每页显示多少条数据默认值为10
#from:指定跳过数据偏移量的大小,默认为0,默认看第一页查询指定页码的from值=(页码 - 1)* 每页数据大小

查看对象的指定字段

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"match_all": {}},"_source": ["status","uri"]
}"_source"用于查看返回指定的字段

查询包含指定字段的文档

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"exists": {"field": "env_name"}}
}
#exists:判断字段是否存在,若存在返回改文档,若不存在不返回

基于字段进行排序sort

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"match_all": {}},"sort": {"bytes_sent": {"order": "asc"} }
}
#sort 基于指定的字段进行排序,此处为:"bytes_sent";针对_source来进行排序order 指定排序规则asc升序;desc降序

多条件查询-bool

#布尔查询可以匹配多个条件查询:"must"(必须是) , "must_not"(不是) , "should" (条件满足其一即可),
POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"bool": {"must": [{"match": {"status": 500}},{"match": {"env_id": "kiku.cn"}}]}           }
}  #布尔值查询区条件区间range基于范围进行过滤:
gt:大于
lt:小于
gte:大于等于
lte:小于等于
POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"bool": {"filter": {"range":{"status":{"gt": 500,"lt": 600}}}              }}
} ##综合环境为dev4.everjiankang.cn,状态500-600之间
POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"bool": {"must": [{"match": {"env_id": "kiku.cn"}}],"filter": {"range":{"status":{"gt": 500,"lt": 600}}}              }}
}

精确匹配值查询

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"query": {"terms": {"status": [500,504]}}
}#精确匹配数字,布尔值等。match是全文检索

聚合查询

POST http://10.11.0.1:9200/ingress_access_2022.11.22/_search
{"aggs": {"uri": {"terms":{"field": "uri.keyword"}}},"size": 0
}基于uri进行聚合
基于uri.keyword进行分组
#"terms"基于什么进行分组
#"max"基于什么取最大值
#"min"统计最小值的
#"avg"统计平均值{"query": {"bool": {"must": [{"match_phrase": {"env_id": "kiku.cn"}}],"filter": {"range":{"status":{"gte": 500,"lt": 600}}}         }},"aggs": {"uri": {"terms":{"field": "uri.keyword""size": 200}}},"size": 0
}

正则表达式用法

https://www.elastic.co/guide/en/elasticsearch/reference/7.14/query-dsl-regexp-query.html

把5xx数据发送到企业微信

企业微信参考官网:https://developer.work.weixin.qq.com/document/path/91770

#通过es的api接口查询前一天5xx访问情况
upload_file=`5xx_log`.csv
##取除数据
make_info() {##设置每天的日志变量year=`date -d last-day +%Y`month=`date -d last-day +%m`date=`date -d last-day +%d`##需要统计的es集群的ip文件ip=`cat es-ip.txt`#把个各集群的数据请求集合到log.txt中for i in $ipdocurl --location --request POST --X POST http://$i:9200/nginx_${year}.${month}.${date}/_search \--header 'User-Agent: Apipost client Runtime/+https://www.apipost.cn/' \--header 'Content-Type: application/json' \--data '{"query": {"bool": {"filter": {"range":{"status":{"gte": 500,"lt": 600}}}}},"aggs": {"uri": {"terms":{"field": "uri.keyword","size": 200}}},"size": 100}'>> log.txtdone##把json格式变成txt输出cat log.txt|jq '.aggregations.uri.buckets[]|.key,.doc_count'|sed -n "N;s/\n/  /p"|awk -F '"' '{print $2","$3}'|grep -E '^/api'|column -t > $upload_file##删除json格式的文档rm -f log.txt
}#往微信中发送消息
sent_wechat() {##机器人信息url="https://qyapi.weixin.qq.com/cgi-bin/webhook"key="机器人的key"# post 参数upload="-H 'Content-Type:multipart/form-data' -F 'filename=@$upload_file;type=application/octet-stream' $url/upload_media?key=$key&type=file"# 获取临时素材idmedia_id=`curl -s -X POST $upload|jq -r .media_id`###发送curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key='$key'' \-H 'Content-Type: application/json' \-d '{"msgtype": "file","file": {"media_id": "'$media_id'"}}'
}make_info
sent_wechat

es的DSL语句查询相关推荐

  1. 使用Bboss处理ES的dsl语句

    首先添加bboss依赖 <dependency><groupId>com.bbossgroups.plugins</groupId><artifactId&g ...

  2. ES常用DSL的查询和简单统计

    DSL? 英文全称Domain Specific Language,解释为领域专用语言. DSL是针对某个特定领域而开发的语言,而我们平时接触 到的C/C++,Java,Python/Ruby, 都属 ...

  3. es 常用DSL查询语序 以及springDataES对应和使用

    基本理解 索引 = 数据库 类型 = 表 文档 = 一条数据 字段 = 字段 映射 = 设计表的组成(这里不像是关系型数据库不能多加字段可以多加只是一个软规定) ik 地址直接访问用就ok:http: ...

  4. es的自动补全查询——DSL语句java代码实现

    1.DSL语句 elasticsearch提供了Completion Suggester查询来实现自动补全功能.这个查询会匹配以用户输入内容开头的词条并返回. 为了提高补全查询的效率,对于文档中字段的 ...

  5. Elasticsearch查询时还在百度DSL语句吗?你可能需要这份总结

    意气风发啊骑上我快乐的小摩托良心公众号啊!我上墙了你开始了嚯嚯嚯嚯嚯哈哈哈哈哈皮皮虾我们走可乐在厨房 红牛在冰箱6666666 看弹幕,点关注 " Do your little bit of ...

  6. es中的dsl练习题-----简单的dsl语句

    slirp4netns >= 0.4 fuse-overlayfs >= 0.7 这是在本地安装elasticsearch数据然后通过kibana来操作数据的dsl来实现的 其中的查询ap ...

  7. es怎么返回全部查询结果_es的返回数据结构

    ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API.本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用.虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的 ...

  8. Day121.ElasticSearch:概述、安装、基本操作、DSL高级查询

    目录 一.ElasticSearch概述 2.倒排索引 3.ElasticSearch 核心概念 ★ (一) ElasticSearch | 相关工具安装 (Windows) 2.kibana7.8 ...

  9. 微服务11_ES:DSL/RestClient查询文档

    微服务11_ES:DSL/RestClient查询文档 一.DSL查询文档 1.DSL Query的分类 1.全文检索查询 match查询示例: multi_match查询示例: 2.精准查询 ter ...

最新文章

  1. 命令行的全文搜索工具--ack
  2. 性能调优常见问题与方案
  3. android okhttp 架构,Android okhttp3.0 框架使用总结
  4. phpcms发布新闻到数据库_如何利用PHPCMS调用新闻列表
  5. android 4.4.2截屏方法,android4.4.2 使用 uiautoviewer 截屏报错
  6. 【Tensorflow】ValueError: Only call `sigmoid_cross_entropy_with_logits` with named arguments
  7. 【Git】Git解决文件本地更改的合并覆盖错误
  8. 【计算机网络】URI、URL、URN 辨析
  9. hadoop KerberosUtil 做Kerberos认证
  10. 中英文对照 —— 手机 App/PC 端软件(系统)、互联网
  11. linux kernel 本地提权漏洞CVE-2013-1763 exploit 代码分析
  12. opencv3.4.x和opencv4.x中 cv2.findContours的不同 ValueError: too many values to unpack (expected 2)
  13. louvain算法python_python – 如何在igraph中运行louvain社区检测算法?
  14. BT5的 U盘启动 制作
  15. 打开QQ音乐检测不到声卡
  16. 使用虚拟机安装操作系统可能出现的问题
  17. opencv将多张图片合成视频
  18. 【python】断言的用法
  19. 2017年2月28日-----------乱码新手自学.net 之特性与验证
  20. 怎样从零开始训练一个AI车手?

热门文章

  1. MFC 绘制半透明图片
  2. StackWalker 堆栈打印
  3. sap 流程图 退货销售订单_销售订单_退货入库及退款(采用高级退货)
  4. 【Android Compose】实现宜家 双联列表
  5. 小米物联网世界第一_雷军:小米智能设备连接数世界第一 AI+IoT是核心战略
  6. 程序员如何管理自己的财富
  7. 按行遍历和按列遍历哪一个更快一些?
  8. 我的大学(学习-上)
  9. 安全协议系列(二)----CCM与CCMP
  10. 腾讯云服务器发布hexo