kibana使用(ELK)、Lucene 查询语法
Lucene查询
Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。
下面着重介绍下Lucene支持的查询:
Terms词语查询
词语搜索,支持 单词 和 语句。
- 单词,例如:"test","hello"
- 语句,例如:"hello,world!"
多个词语可以通过操作符,连接成更复杂的搜索逻辑。
Field字段查询
Lucene支持针对某个字段进行搜索,语法如:
title:hello
或者
title:"hello title"
搜索语句时需要加上双引号,否则:
title:hello title
就意味着,搜索title为hello,或者包含title关键字的文档
Term Modifier修饰符查询
Lucene支持对词语增加修饰,从而扩大查询的范围。
WildCard Searches通配符查询
支持在单个单词或者语句中添加通配符:
?匹配单个字符*匹配0个或多个字符
例如:
=>想要搜索test或者text
te?t
=>想要搜索test tests tester
test*
文档中不支持通配符放在搜索的开头,如*test,但是在kibana中是支持这种搜索语法的。
Fuzzy Searches模糊词查询
支持搜索模糊词,如果想要搜索模糊词,需要在词语后面加上符号~
例如:
=>想要搜索和test相近的词
test~
可以搜索出text或者tests等词
也支持在~后面添加模糊系数,模糊系数[0-1],越靠近1表示越相近,默认模糊系数为0.5。
test~0.8
Proximity Searches邻近词查询
前面的模糊词只是针对某个单词,在语句间也存在模糊搜索的概念,只不过不是单词的模糊,而是单词之间内容的模糊。
注意要使用双引号`""`包围
例如:
=>想要搜索包含"hello""world"的文档,这两个单词中间可以有一部分内容(这部分内容通过字符个数限制)
"hello world"~10
可以匹配"hello 123 world"
或者"hello,Tom,world"
Range Searches范围查询
支持范围搜索,可以指定最小值和最大值,会自动查找在这之间的文档。如果是单词,则会按照字典顺序搜索。
{}尖括号表示不包含最小值和最大值,可以单独使用[]方括号表示包含最小值和最大值,可以单独使用
例如:
=>搜索成绩grade字段小于等于80分,大于60分的
grade:{60,80]
=>搜索名字在A和C之间的
name:{A,C}
返回,bone、baby、barry
Boosting a Term词语相关度查询
如果单词的匹配度很高,一个文档中或者一个字段中可以匹配多次,那么可以提升该词的相关度。使用符号^提高相关度。
例如:
=>提高jarkarta的比重
jakarta apache
可以采用下面的语法:
jakarta^4 apache
Boolean Operator布尔操作符
支持多种操作符:
AND
AND操作符用于连接两个搜索条件,仅当两个搜索条件都满足时,才认为匹配。通常用来做交集操作。也可以使用&&替换。
注意必须使用大写。如果不使用AND,而是and,可能会被单做关键词进行搜索!
例如:
=> 搜索同时包含tom和john的文档
tom AND john
或者
tom && john
OR
OR操作符用于连接两个搜索条件,当其中一个条件满足时,就认为匹配。通常用来做并集操作。也可以使用||替换。
注意必须使用大写。
例如:
=>搜索包含tom或者john的文档
tom OR john
或者
tom || john
NOT
NOT操作符排除某个搜索条件。通常用来做差集操作也可以使用!替换。
注意必须大写。
例如:
=>搜索包含tom,不包含john的文档
tom NOT john
或者
tom && !john
在kibana中支持单独使用,如:
=>排除包含test的文档
NOT test
+
包含该操作符后跟着的搜索条件,如:
=>搜索包含tom的文档
+tom
作用于AND的差不多,但是支持单独使用
-
排除该操作符后跟着的搜索条件,如:
=>搜索不包含tom的文档
-tom
效果类似NOT
Grouping分组
支持使用小括号对每个子句进行分组,形成更为复杂的查询逻辑。
例如:
=>要搜索包含hello的文档中,也包含tom或者john的
hello AND (tom OR john)
也支持在字段中使用小括号:
=>要搜索标题中,既包含return 也包含pink panther的
title:(+return +"pink panther")
Escaping Special Character转义字符
由于Lucene中支持很多的符号,如
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
因此如果需要搜索 (1+1):2 需要对改串进行转换,使用字符\。
\(1\+1\)\:2
elk不同之处
对与范围查询:
lucene :{A,C} 而elk则:{A TO B}
例如:elk的一个查询:
@timestamp:{"now-10m" TO "now"} AND message : "come in ActivityCommonService_pz" && (1517391575588 OR 1112796) +\[5.23.0\] AND @version:[0 TO 2]

kibana使用(ELK)、Lucene 查询语法的更多相关文章
- ELK:kibana使用的lucene查询语法【转载】
kibana在ELK阵营中用来查询展示数据 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 全文搜索 在搜索栏输入login,会返回所有字段值中包含login的文档 使 ...
- ELK:kibana使用的lucene查询语法
kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...
- kibana使用的lucene查询语法
kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...
- Lucene查询语法详解
Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...
- query_string查询支持全部的Apache Lucene查询语法 低频词划分依据 模糊查询 Disjunction Max
3.3 基本查询3.3.1词条查询 词条查询是未经分析的,要跟索引文档中的词条完全匹配注意:在输入数据中,title字段含有Crime and Punishment,但我们使用小写开头的crime来搜 ...
- Lucene查询语法汇总
目录 一.单词查询 二.通配符查询 三.模糊查询 四.近似查询 五.范围查询 六.优先级查询 七.逻辑操作 八.括号分组 九.转义特殊字符 Lucene是目前最为流行的开源全文搜索引擎工具包,提供了完 ...
- lucene查询语法简介
为什么要介绍lucene:我们在ELK中搜索相关日志的时候,搜索语言需要遵循Lucene才可以匹配到需要的信息 什么是Lucene:Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件 ...
- Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser
一.Lucene的查询语法 Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html (1) 语法关键字 + ...
- Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser 2014-06-25 14:25 722人阅读 评论(1) 收藏
一.Lucene的查询语法 Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html (1) 语法关键字 + ...
随机推荐
- web小结
一.ajax 1.用于前端向服务器异步获取数据 json数组:可以直接通过数组下标获取到值 json对象:可以用“data.xx”获取到值 2.注意事项 同时请求两个ajax时,容易出现异常,第一个a ...
- 用 Delphi 7 实现基于 FFMS2 的视频转 GIF 工具 [原创]
儿子经常要把自拍的视频(ts格式)转成表情包,下载了几个工具都不大好用,更多的还要收费.那就想自己写一个吧,没想到这一下断断续续地,居然 3 个月过去了.现在总算弄出个作品来了,结个贴吧.唉,天资愚钝 ...
- 机器人平台框架Yarp - Yet another robot platform
简介 ROS有强大和易用的特性,用的人很多,目前已经推出2.0版本,有相关的官网和论坛.然而其缺点也比较明显. 只能基于Ubuntu系统,且一个ROS版本只能对应一个具体的Ubuntu版本 通信 ...
- JavaScript学习(1)之JavaScript基础
JavaScript学习(1)之JavaScript基础 由于工作原因,开发语言逐渐以JavaScript为主,所以,抽空学习了下JavaScript语法.等现阶段的工作稳定之后,陆续会分享下自己在学 ...
- VMware启动Centos时出现错误Cannot open the disk 'xxxxxxx.vmdk' or one of the snapshot disks it depends on. .
今天拔装虚拟机的硬盘的时候,没有关掉虚拟机,导致虚拟打开的时候出现:Cannot open the disk 'xxxxxxx.vmdk' or one of the snapshot disks i ...
- 关于Target=" "的一些属性
总结目前所知的Target=""的几个属性,对其它博客进行整理和归纳. Target="_blank":浏览器总在一个新打开.未命名的窗口中载入目标文档. 说通 ...
- 虚拟机环境下DPDK运行时的一些错误解决
在绑定网卡到DPDK模块时 报错 :is active. Not modifying Routing table indicates that interface 0000:02:01.0 is ac ...
- Week-4-作业1
前言 经过了上周作业的学习拾遗,让我学到了很多东西,也能更好的阅读<构建之法>这本书,下面是我在阅读过第四章和第十七章之后想到的一些问题. 第四章 4.2.1 关于缩进,书中说用四个空格刚 ...
- 微信小程序之Flex布局
微信小程序页面布局方式采用的是Flex布局.Flex布局,是W3c在2009年提出的一种新的方案,可以简便,完整,响应式的实现各种页面布局.Flex布局提供了元素在容器中的对齐,方向以及顺序,甚至他们 ...
- Beta阶段——3
一.提供当天站立式会议照片一张: 二. 每个人的工作 (有work item 的ID) (1) 昨天已完成的工作: 今天主要是对管理员功能进行改进,解决了Alpha阶段出现的一些问题 (2) 今天计划 ...