Kibana使用之Lucene的语法查询

简介: 转载地址Kibana使用之Lucene的语法查询Kibana使用的查询语法是Lucene的查询语法,这里在使用Kibana的同事一定要注意,不然,在进行搜索的时候,你会抓狂的。

转载地址

Kibana使用之Lucene的语法查询

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

 

目录
相关文章
|
分布式计算 并行计算 数据库
Schedulerx2.0分布式计算原理&最佳实践
1. 前言 Schedulerx2.0的客户端提供分布式执行、多种任务类型、统一日志等框架,用户只要依赖schedulerx-worker这个jar包,通过schedulerx2.0提供的编程模型,简单几行代码就能实现一套高可靠可运维的分布式执行引擎。
28152 2
|
消息中间件 Java 中间件
秒懂消息队列MQ,万字总结带你全面了解消息队列MQ
消息队列是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件,所以掌握好消息队列MQ就变得极其重要。接下来我就将从零开始介绍什么是消息队列?消息队列的应用场景?如何进行选型?如何在Spring Boot项目中整合集成消息队列。
26926 10
秒懂消息队列MQ,万字总结带你全面了解消息队列MQ
解决开启子线程,导致request上下文和session信息丢失问题
解决开启子线程,导致request上下文和session信息丢失问题
1655 0
|
5月前
|
JavaScript Linux iOS开发
零代码零基础!小红书MCP全自动化运营【保姆级安装教程】
小红书MCP是一款开箱即用的自动化运营工具,支持登录、发图文/视频、评论互动等。无需源码编译或Docker,下载预编译安装包即可快速部署,兼容Windows/macOS/Linux。配合Cursor编辑器,通过自然语言指令即可完成全部操作,新手10分钟上手。
7743 0
|
6月前
|
人工智能 前端开发 机器人
阿里云百炼 AI 聊天机器人 | Aliyun Bailian ChatBot for WordPress
一款强大的WordPress插件,集成阿里云百炼(Model Studio)AI聊天机器人,支持模型直连与应用API双模式,适用于客服、知识库等场景,具备流式输出、多轮对话、推理显示等功能,轻松通过短代码嵌入网站。
|
人工智能 自然语言处理 开发工具
Languine:专为开发者设计的 AI 多语言翻译工具,快速生成100+种语言的准确翻译,简化应用程序的 i18n 国际化配置
Languine 是一款面向开发者的 AI 翻译工具,支持 100+ 种语言,自动化翻译流程,提升多语言应用开发效率。
822 15
Languine:专为开发者设计的 AI 多语言翻译工具,快速生成100+种语言的准确翻译,简化应用程序的 i18n 国际化配置
|
自然语言处理 Java 程序员
java、八大经典书籍,你看过几本?
java、八大经典书籍,你看过几本?
|
Java Maven
Mac Maven环境变量配置 zsh: command not found: mvn
Mac Maven环境变量配置 zsh: command not found: mvn
1212 0
|
Web App开发 iOS开发
三种获取苹果设备UID的方式
三种获取苹果设备UID的方式
5997 0

热门文章

最新文章