Kibana Query Language(KQL)
语法:
If you’re familiar with Kibana’s old lucene query syntax, you should feel right at home with the new syntax. The basics stay the same, we’ve simply refined things to make the query language easier to use. Read about the changes below.
response:200
will match documents where the response field matches the value 200.
Quotes around a search term will initiate a phrase search. For example, message:"Quick brown fox"
will search for the phrase "quick brown fox" in the message field. Without the quotes, your query will get broken down into tokens via the message field’s configured analyzer and will match documents that contain those tokens, regardless of the order in which they appear. This means documents with "quick brown fox" will match, but so will "quick fox brown". Remember to use quotes if you want to search for a phrase.
The query parser will no longer split on whitespace. Multiple search terms must be separated by explicit boolean operators. Note that boolean operators are not case sensitive.
response:200 extension:php
in lucene would become response:200 and extension:php
. This will match documents where response matches 200 and extension matches php.
We can make terms optional by using or
.
response:200 or extension:php
will match documents where response matches 200, extension matches php, or both.
By default, and
has a higher precedence than or
.
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.
We can override the default precedence with grouping.
response:200 and (extension:php or extension:css)
will match documents where response is 200 and extension is either php or css.
A shorthand exists that allows us to easily search a single field for multiple values.
response:(200 or 404)
searches for docs where the response
field matches 200 or 404. We can also search for docs with multi-value fields that contain a list of terms, for example: tags:(success and info and security)
Terms can be inverted by prefixing them with not
.
not response:200
will match all documents where response is not 200.
Entire groups can also be inverted.
response:200 and not (extension:php or extension:css)
Ranges are similar to lucene with a small syntactical difference.
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".
Wildcards also allow us to search multiple fields at once. This can come in handy when you have both text
and keyword
versions of a field. Let’s say we have machine.os
and machine.os.keyword
fields and we want to check both for the term "windows 10". We can do it like this: `machine.os*:windows 10".
Terms without fields will be matched against the default field in your index settings. If a default field is not set these terms will be matched against all fields. For example, a query for response:200
will search for the value 200 in the response field, but a query for just 200
will search for 200 across all fields in your index.
Lucene Query Syntax
Kibana’s legacy query language was based on the Lucene query syntax. For the time being this syntax is still available under the options menu in the Query Bar and in Advanced Settings.
The following are some tips that can help get you started.
- To perform a free text search, simply enter a text string. For example, if you’re searching web server logs, you could enter
safari
to search all fields for the termsafari
. - To search for a value in a specific field, prefix the value with the name of the field. For example, you could enter
status:200
to find all of the entries that contain the value200
in thestatus
field. - To search for a range of values, you can use the bracketed range syntax,
[START_VALUE TO END_VALUE]
. For example, to find entries that have 4xx status codes, you could enterstatus:[400 TO 499]
. - To specify more complex search criteria, you can use the Boolean operators
AND
,OR
, andNOT
. For example, to find entries that have 4xx status codes and have an extension ofphp
orhtml
, you could enterstatus:[400 TO 499] AND (extension:php OR extension:html)
.
For more detailed information about the Lucene query syntax, see the Query String Query docs.
These examples use the Lucene query syntax. When lucene is selected as your query language you can also submit queries using the Elasticsearch Query DSL.
Kibana Query Language(KQL)的更多相关文章
- Kibana查询语言(KQL)
一.前言 现在大多数的公司都会使用ELK组合来对日志数据的收集.存储和提供查询服务,这里就不介绍什么是ELK了,只介绍一些EKL中的查询,也就是K(kibana). 查询数据库,如果是MySQL,那么 ...
- hql(Hibernate Query Language)
1.Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate ...
- HQL: The Hibernate Query Language
Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Ass ...
- SQL Structured Query Language(结构化查询语言) 数据库
SQL是Structured Query Language(结构化查询语言)的缩写. SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 在使用它时,只需要发出“做什么”的命令,“怎么 ...
- Hibernate Query Language查询:
Hibernate Query Language查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供 ...
- GraphQuery - Powerful html/xml query language
GraphQuery GraphQuery is a query language and execution engine tied to any backend service. It is ba ...
- 数据库原理及应用-用户接口及SQL查询语言(Query Language)
2018-02-07 20:41:39 一.DBMS的用户接口 查询语言 访问DBMS的访问工具(GUI) API 相关类库 二.SQL语言 SQL语言可以细分为四种: 1.Data Definiti ...
- JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language
JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据 ...
- 数据库系统概述(Data Model、DBMS、DBS、RDBS、Structured Query Language)
数据Data 描述事物的符号记录成为数据. 数据是数据库中存储的基本对象. 除了基本的数字之外.像图书的名称.价格.作者都可以称为数据. 将多种数据记录列成一张表.通过数据表管理数据. 每一行的数 ...
随机推荐
- javascript 给事件任务一个缓冲区
在编写前端的过程中,经常会监听事件并执行任务,我在这抛出2个比较常见的场景: 1.输入关键字搜索如果你监听input的chage事件,会有一个问题,在使用中文输入法时,你输入的几个拼音字母都会被触发我 ...
- OSI七层与TCP/IP五层
OSI七层与TCP/IP五层网络架构详解 OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 ...
- ORACLE归档日志满了之后,如何删除归档日志
当ORACLE归档日志满后如何正确删除归档日志 版权声明:本文为博主原创文章,未经博主允许不得转载. 当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入OR ...
- jajx 传参 需要 判断的 条件
1.有没有权限. 2.数据类型 对不对 例如 id ,page 传过来时是str 类型, view中处理时需要转换成 int类型. 如果 不能转 就会报错.. 3.查询数据.数据不存在也要报错... ...
- rsync & inotify-tools 实时同步
1.根据之前一篇关于rsync的随笔部署好rsync服务后,可以开始inotify的部署 2.inotify的部署使用 ①.检查系统是否支持inotify [root@iZ25w1kdi5zZ ~]# ...
- python excel基本操作
#coding=utf-8 ''' excel基本操作 ''' from openpyxl import Workbook wb=Workbook() ws1=wb.create_sheet('sh1 ...
- 笔记本电脑安装jupyterthemes
上午准备在老笔记本上也装上jupyter themes,竟然遇到一堆问题: 首先直接 pip install jupyterthemes 参考:https://blog.csdn.net/Jinlon ...
- PHP返回JSON数据及中文编码问题的解决方案
在处理app接口的时候 ,中文在经过json_encode之后 变成\ \格式 想在返回接口的时候 中文不被转换 解决办法 第一种解决办法 exit(json_encode($result,JSON ...
- 用7天找到月薪9K的Linux运维工作,就靠这四点
作者:99527 来源:http://www.yunweipai.com/archives/20865.html 毕业后做了1年IDC运维,每天看看服务器状态,检查检查硬盘.内存什么的,工作没什么技术 ...
- Pycharm----默认字体大小的设置
设定前 设定后,修改字体的大小为:15号 设置方式:按照截图操作选择后,点击”apply“即可