Lucene用法示例
整理一下 ELK 和 Grafana 中会用到的 Lucene 用法:
通配符
示例1:过滤出 url 中包含 .pw/ 的 网址
url.keyword:*.pw\/*
正则表达式
示例1:过滤出 url 中包含 .pw/ 的网址
url.keyword:/.+\.pw\/.+/
相似度
示例1:过滤出 url 中包含 .pw/ 的网址
\.pw~
或
url:\.pw~
范围查询
示例1:时间范围在17点正到17点10分的网址(+8小时)
@timestamp:[2017-09-01T09:00:00.000Z TO 2017-09-01T09:10:00.000Z]
操作符
AND
示例1:时间范围在17点正到17点10分,且 url 中包含 .pw/ 的网址
@timestamp:[2017-09-01T09:00:00.000Z TO 2017-09-01T09:05:00.000Z] AND url:pw~
OR
示例1:按相似度过滤出 url 中包含 pw 或 cc 的网址
url:pw~ OR url:cc~
NOT
示例1:过滤出 url 中包含 16676 同时不包含 tu-16676 的网址
url:"+16676" NOT "tu-16676"
+
示例1:过滤出 url 中包含 16676 的网址
url:"+16676"
-
示例1:过滤出 url 中包含 16676 但不包含 tu-16676 的网址
url:16676 -"tu-16676"
分组
示例1:过滤出 url 中包含 topic 或 player 同时包含 16676 的网址
url:(topic OR player) AND url:"16676"
示例2:过滤出 url 中包含 topic 或 player 同时包含 16676 的网址
url:((topic OR player) AND "16676")
特殊字符
需要转义的字符
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ / .