kibana中查询elasticsearch数据的方法

1.  Lucene查询语法

Kibana查询语言基于Lucene查询语法。

  • 为了执行一个文本搜索,可以简单的输入一个文本字符串。例如,如果你想搜索web服务器的日志,你可以输入关键字"safari",这样你就可以搜索到所有有关"safari"的字段
  • 为了搜索一个特定字段的特定值,可以用字段的名称作为前缀。例如,你输入"status:200",将会找到所有status字段的值是200的文档
  • 为了搜索一个范围值,你可以用括号范围语法,[START_VALUE TO END_VALUE]。例如,为了找到状态码是4xx的文档,你可以输入status:[400 TO 499]
  • 为了指定更改复杂的查询条件,你可以用布尔操作符 AND , OR , 和 NOT。例如,为了找到状态码是4xx并且extension字段是php或者html的文档,你可以输入status:[400 TO 499] AND (extension:php OR extension:html)

双引号括起来表示一个整体,需要完全匹配,不进行分词。

2.  Kibana查询语法增强

基本原理保持不变,我们只是简单地改进了一些东西,使查询语言更易于使用。

  • response:200 将匹配response字段的值是200的文档
  • 用引号引起来的一段字符串叫短语搜索。例如,message:"Quick brown fox"  将在message字段中搜索"quick brown fox"这个短语。如果没有引号,将会匹配到包含这些词的所有文档,而不管它们的顺序如何。
  • 查询解析器将不再基于空格进行分割。多个搜索项必须由明确的布尔运算符分隔。注意,布尔运算符不区分大小写。
  • 在Lucene中,response:200 extension:php 等价于 response:200 and extension:php。这将匹配response字段值匹配200并且extenion字段值匹配php的文档。
  • 如果我们把中间换成or,那么response:200 or extension:php将匹配response字段匹配200 或者 extension字段匹配php的文档。
  • 默认情况下,and 比 or 具有更高优先级。
  • 括号可以改变这种优先级
  • not response:200 将匹配response不是200的文档
  • 范围检索和Lucene有一点点不同,代替 byte:>1000,我们用byte > 1000
  • >, >=, <, <= 都是有效的操作符
  • response:*  将匹配所有存在response字段的文档;
  • 通配符查询也是可以的。machine.os:win* 将匹配machine.os字段以win开头的文档;
  • 通配符也允许我们一次搜索多个字段。假设我们有machine.os和machine.os.keyword两个字段,我们想要搜索这两个字段都有"windows 10",那么我们可以这样写"machine.os*:windows 10";

3.  Kibana查询语法增强举例

datetime:"2020-08-26"

查询语句表示,查询datetime中包含“2020-08-26”字符串的记录;

message: "请联系管理员" and datetime: "2021-09-29" and node:"node3"

Kibana Query Language | Kibana Guide [7.4] | Elastic

response:200 will match documents where the response field matches the value 200

message:"Quick brown fox" will search for the phrase "quick brown fox" in the message field

response:200 extension:php would become response:200 or extension:php in KQL

response:200 and extension:php will match documents where response matches 200 and extension matches php.

response:200 and extension:php or extension:css will match documents where response is 200 and extension is php OR documents where extension is css and response is anything.

response:200 and (extension:php or extension:css) will match documents where response is 200 and extension is either php or css.

Instead of bytes:>1000, we omit the colon: bytes > 1000.

>, >=, <, <= are all valid range operators.

Exist queries are simple and do not require a special operator. response:* will find all docs where the response field exists.

Wildcard queries are available. machine.os:win* would match docs where the machine.os field starts with "win", which would match values like "windows 7" and "windows 10".

在kibana中查询elasticsearch数据的方法(lucene和kql语法)相关推荐

  1. 详述 Elasticsearch 通过范围条件查询索引数据的方法

    文章目录 情景 查询方法 通过命令实现范围查询 通过 API 实现范围查询 情景 在使用 Elasticsearch 的时候,我们可能会遇到需要以范围为条件查询索引数据的需求.有两种方法可以实现我们的 ...

  2. mysql 获取下一条记录数,如何在MySQL中查询当前数据上一条和下一条的记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...

  3. MM2022 | 在特征空间中的多模态数据增强方法

    MM2022 | 在特征空间中的多模态数据增强方法 [写在前面] 每小时,社交媒体和用户生成的内容平台上都会发布大量的视觉内容.为了通过自然语言查询查找相关视频,文本视频检索方法在过去几年中受到了越来 ...

  4. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

  5. Linux内核中读写文件数据的方法

    Linux内核中读写文件数据的方法     有时候需要在Linuxkernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数, ...

  6. 【转】 Linux内核中读写文件数据的方法--不错

    原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法     有时候需要在Linuxkernel ...

  7. python返回json数据_python和flask中返回JSON数据的方法

    在python中可以使用json将数据格式化为JSON格式: 1.将字典转换成JSON数据格式: s=['张三','年龄','姓名'] t={} t['data']=s return json.dum ...

  8. html页面加载json数据,在html中显示JSON数据的方法

    背景: 有时候我们需要将json数据直接显示在页面上(比如在做一个接口测试的项目,需要将接口返回的结果直接展示),但是如果直接显示字符串,不方便查看.需要格式化一下. 解决方案: 其实JSON.str ...

  9. 介绍一种在MATLAB中获取股市数据的方法

    介绍一种在MATLAB中获取股市数据的方法: >>clear >>c=yahoo 系统会返回 c = url: 'http://finance.yahoo.com'       ...

最新文章

  1. 全国大学生智能汽车竞赛-讯飞赛道开始报名啦!
  2. 【转】web 前端研发工程师编程能力飞升之路
  3. 免费试用人数太多,微软Windows 365云电脑服务器炸了,官方紧急暂停
  4. python3 连接redis密码中特殊字符问题
  5. Python赋值、打包和解包,90%人不清楚的知识点!
  6. 给自己走过的路留下一些痕迹
  7. python如何下载库_python中如何下载库
  8. C和指针---第八章:数组
  9. Redis之key的淘汰策略
  10. Linux 远程连接工具 【vnc viewer】 图形界面
  11. Linux下创建Django项目并访问
  12. 调出远程桌面的任务管理器
  13. 破解滑块验证码(打码平台)
  14. 简单一码付:将支付宝和微信的收款二维码合并为一个二维码
  15. mysql 数据脱敏
  16. 惠普ELITE X2 1012 G1平板拆机记录
  17. 构建Lua解释器Part3:String设计与实现
  18. ios 操作通讯录联系人
  19. Web实时语音/视频聊天/文件传输
  20. 数控机床需要c语言程序吗,数控机床的编程有几种方法?

热门文章

  1. bzoj2448 挖油
  2. 3DMax学习笔记【还在更新】
  3. 人工智能和图像处理方面的各种会议的评级
  4. 重组的脱氧核糖核酸酶 I,生物工艺级相关研究
  5. 关于各种USB启动模式(MBR)的原理剖析
  6. android点击展开内容,Android编程实现Listview点击展开和隐藏的方法
  7. 计算机竞赛进省队可以保送吗,厉害!物理竞赛8名学子入选省队!信息学竞赛5人获清北保送资格,他们来自……...
  8. 三菱PLC第一篇:GXWORK3与三菱FX5UPLC同通过交换机连接
  9. matlab读取心电注释.qrs文件格式,MIT-BIH ECG 心电数据的下载和读取图解 - 晨宇思远 - CSDN博客...
  10. 基于Andriod的连锁药店管理系统-计算机毕业设计源码+LW文档