Kibana–基础–2.2–使用–Lucene查询语法
1、介绍
- Lucene查询语法
- 怎么去搜索数据
1.1、Lucene查询语法的官网
https://lucene.apache.org/core/2_9_4/queryparsersyntax.html
1.2、切换Lucene查询语法
2、Lucene查询语法
- Lucene 是目前最为流行的开源全文搜索引擎工具包
- Lucene 提供了完整的查询引擎和索引引擎,部分文本分析引擎。
- 我们平时使用kibana、阿里云的日志查询或者其他一些lucene二次开发的产品,几乎都支持lucene语法。
2.1、单词查询
2.1.1、直接使用单词 查询
173.90.109.119
2.1.2、多个单词 查询
- 用逗号或者空格 隔开
173.90.109.119 70.75.216.255
2.1.3、字段 : 字段值 查询
message : 70.75.216.255
2.2、通配符查询
?匹配单个字符
*匹配0或多个字符
2.2.1、匹配单个字符
Apple?ebKit
2.2.2、匹配0或多个字符
AppleWe*
Apple*bKit
*WebKit
2.3、模糊搜索
- 在一个单词后面加上 ~ 启用模糊搜索
- 在 ~ 后面 可以添加 模糊系数
- 范围:
- 模糊系数[0-1]
- 越靠近1表示越相近
- 默认模糊系数:0.5
- 范围:
2.3.1、启用模糊搜索
在一个单词后面加上 ~ 启用模糊搜索
AppleWebKti ~ 能匹配到错误的单词 AppleWebKit
2.3.2、模糊系数
AppleWebKti ~ 0.1
2.4、近似查询
- 短语后面加上~,可以搜到被隔开或顺序不同的单词
# 表示Windows和5.1之间可以隔开1两个词
"Windows 5.1"~1
2.5、近似查询
response:[200 TO 400]
response:{200 TO 499}
response:{200 TO 499]
[]:端点数值包含在范围内
{}:端点不包含在范围内
2.5.1、查找所有介于 200-400 之间的状态代码,包含两端点
response:[200 TO 400]
2.5.2、查找所有介于 200-499 之间的状态代码,不包含两端点
response:{200 TO 499}
2.6、优先级查询
- 如果单词的匹配度很高,一个文档中或者一个字段中可以匹配多次,那么可以提升该词的相关度。
- 使用符号^提高相关度。
- 默认:1
- 可以为0~1之间的浮点数,来降低优先级
2.6.1、让200的内存优先输出
200^2 404
2.6.2、让404的内存优先输出
200 404^2
2.7、逻辑操作
- AND:逻辑与,也可以用&&代替
- OR:逻辑或,也可以使用||代替
- NOT:逻辑非,也可以使用!代替
- +:必须包含
- -:不能包含
2.7.1、案例1
response:200 AND message:29.64.62.83
2.7.2、案例2
response:200 NOT message:29.64.62.83
2.7.3、案例3
response:200 OR message:29.64.62.83
2.7.4、案例4
# 必须包含response:200,不包含message:29.64.62.83
+response:200 -message:29.64.62.83
2.8、括号分组
2.8.1、使用小括号对子句进行分组,构造更复杂的查询逻辑
# 存在404 或者 同时存在success和AppleWebKit
404 OR (success AND AppleWebKit)
2.8.2、在字段中使用小括号分组
# agent里面需要同时存在Mozilla和AppleWebKit
agent:(+Mozilla +AppleWebKit)
2.9、转义特殊字符
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
2.9.1、查询 HTTP/1.1
HTTP\/1.1