内容简介:Kibana使用的查询语法是Lucene的查询语法,这里在使用Kibana的同事一定要注意,不然,在进行搜索的时候,你会抓狂的。下面了解下Lucene的查询语法,了解了Lucene的查询语法也就知道了改如何使用Kibana的使用方式Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。
Kibana使用的查询语法是Lucene的查询语法,这里在使用Kibana的同事一定要注意,不然,在进行搜索的时候,你会抓狂的。
下面了解下Lucene的查询语法,了解了Lucene的查询语法也就知道了改如何使用Kibana的使用方式
Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。
词语查询,语法如下
"here","there" "here,there"
字段查询,语法如下
tag:there tag:"there are"
搜索语句是需要加上双引号,否则
tag:there are
就意味着,搜索tag为there,或者包含are关键字的文档
修饰符查询,通过增加修饰,从而扩大查询的范围。
通配符一般包括如下
?:匹配单个字符
*:匹配0个或多个字符
语法如下
?tere
意味着搜索there、where等类似的文档
test*
意味着搜索test、tests、tester
模糊词查询,就是在词语后面加上符号~。语法如下
he~
意味着搜索her或hei等词
也可以在~后面添加模糊系数,模糊系数[0-1],越靠近1表示越相近,默认模糊系数为0.5。语法如下
he~0.8
邻近词查询,语法如下
"here there"~10
代表搜索包含"here","there"的文档,这两个词中间可以有一部分内容(这部分的内容通过字符个数显示)
能够匹配到结果的如下
"here wowo wowo there" "here,wowow,wowow,there"
范围查询,可以指定最大值和最小值,会自动查找在这之间的文档。如果是单词,则会按照字典顺序搜索。
{}尖括号表示不包含最小值和最大值,可以单独使用
[]方括号表示包含最小值和最大值,可以单独使用。如下:
如果搜索成绩grade字段小于等于80分,大于60分的
可以写成下面的方式
grade:{60,80]
如果搜索name在A和C之间的,可以使用如下的语法
name:{A,C}
词语相关度查询
如果单词的匹配度很高,一个文档中或者一个字段中可以匹配多次,那么可以提升该词的相关度。使用符号^提高相关度。
提高jarkarta的比重
jakarta apache
可以采用下面的语法:
jakarta^4 apache
布尔操作符
支持多种操作符:
AND
AND操作符用于连接两个搜索条件,仅当两个搜索条件都满足时,才认为匹配。通常用来做交集操作。也可以使用&&替换。
注意必须使用大写。如果不使用AND,而是and,可能会被单做关键词进行搜索!
例如:搜索同时包含a和b的文档
a AND b
或者
a && b
OR
OR操作符用于连接两个搜索条件,当其中一个条件满足时,就认为匹配。通常用来做并集操作。也可以使用||替换。注意必须使用大写。
例如:搜索包含a或者b的文档
a OR b
或者
a || b
NOT
NOT操作符排除某个搜索条件。通常用来做差集操作也可以使用!替换。注意必须大写。
例如:搜索包含a,不包含b的文档
a NOT b
或者
a && !b
在kibana中支持单独使用,如:排除包含test的文档
NOT test
+(加号)
包含该操作符后跟着的搜索条件,如:搜索包含tom的文档
+tom
作用和AND的差不多,但是支持单独使用
-(减号)
排除该操作符后跟着的搜索条件,如:搜索不包含tom的文档
-tom
效果类似NOT
分组
支持使用小括号对每个子句进行分组,形成更为复杂的查询逻辑。
例如:要搜索包含a的文档中,也包含b或者c的
a AND (b OR c)
也支持在字段中使用小括号。如:要搜索标题中,既包含a也包含b的
title:(+a +"b")
转义字符
由于Lucene中支持很多的符号,如
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
因此如果需要搜索 (1+1):2 需要对改串进行转换,使用字符\。
\(1\+1\)\:2
参考文档:
http://www.cnblogs.com/xing901022/p/4974977.html
https://segmentfault.com/a/1190000002972420
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Go语法糖之‘...’ 的使用
- 使用 Calcite 做 SQL 语法解析
- 在ES6中使用扩展语法有什么好处?它与rest语法有什么不同?
- laravel中使用markdown及语法高亮
- MySQL的安装和基础使用及语法指南
- 微信小程序使用async/await语法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
文明之光(第一册)
吴军 / 人民邮电出版社 / 2014-6-25 / 59.00元
人类的历史,是从野蛮蒙昧一步步走向文明进步的过程。在文明的进程中,人类创造出多元的文化,它们有着各自的特长。要实现人类和平发展的终极理想,一个重要的前提是承认文化的多元性,并且取长补短,相互融合。 吴军博士写作《文明之光》系列,希望能开阔人们的视野,让我们看到各种各样的人类文明。虽然今天不同的地区发达程度不同,文明历史的长短不一,国家亦有大小之分,但是文明之光从世界的每一个角落发出,对人类的......一起来看看 《文明之光(第一册)》 这本书的介绍吧!