我们支持以下搜索语法:
1 全文检索
检索一个或多个查询词时,系统不区分大小写。如果查询多个关键字,则不区分这些词的先后顺序,且查询结果将同时包含这些词。例如
hello world
相当于
hello AND world
即日志结果中必须包含 hello 与 world。
2 短语查询
如果需要查询短语(即短语内的多个词都必须都出现,而且保持同样的顺序及相邻状况),需要用双引号把短语括起来,查询结果不区分大小写。例如查询“hello world”,匹配的日志也必须包含“hello world”。
3 字段值
格式 field:value
field是字段名,应当为字符串,搜索时区分大小写字母,不得使用? *等字符;value可以是字符串或数值,字符串区分大小写字母,可以使用? *等字符。此用法也可在界面左栏的字段值处点击建立字段过滤。例如
tag:test
匹配 tag 字段值为 “test” 的日志;
apache.status:200
匹配 apache.status 字段值为200的日志;
apache.stauts:*
匹配带 apache.status 字段的日志;
apache.clientip:192.168.1.1*
匹配 apache.clientip 为 192.168.1.1,192.168.1.103,192.168.1.114 等值的日志。
4 逻辑运算符
AND,OR,NOT,( ),AND、OR、NOT 必须大写。
term1 AND term2
匹配的日志里 term1 和 term2 都必须都出现,AND 默认可缺省;
term1 OR term2
匹配的日志里 term1 或 term2 出现1个即可;
NOT term
匹配的日志里不含有 term;
由于 AND 的优先级比 OR 高,可用()改变运算优先级,例如:
term1 AND (term2 OR term3)
表示匹配的日志里必须包含 term1,以及term2、term3中的任一个。
5 数值范围
格式
field:[value1 TO value2]
field:{value1 TO value2}
field:{value1 TO value2]
field:[value1 TO value2}
field:>value
field:>=value
field:<value
field:<=value
value/value1/value2 为数值,TO 必须大写,”[” 、”]”符号表示包含边界数值, “{“、”}” 不包含边界数值。
如:
apache.status:[400 TO 500]
匹配 apache.status 值在400到500之间的日志,包含400和500。
apache.status:>400
匹配 apache.status 值大于400的日志。
6 通配符
* 匹配0个或多个字符,单独搜索 * 会显示所有日志;?匹配1个字符。例如:
syslog.appName:abc*
syslog.appName:ab?
都会匹配 syslog.appName 为 abc 的日志
tag:mytag*
匹配 tag 为 mytag 或 mytag1的日志
tag:mytag?
匹配 tag 为 mytag1 的日志,但 无法匹配 tag 为 mytag 的日志。
7 基本正则表达式
格式 /regexp/, 支持[ ] (范围), {n} (出现n次), {n,m} (出现n次到m次), {n,} (至少出现n次) 等基本正则表达式。 例如
/[wb]all/
匹配包含 wall 或 ball 的日志
/0{4,}/
匹配包含0000的日志
/frontend[0-9]{2}/
匹配 frontend 后面带有2位数字的日志。
8 特殊字符的检索处理
只有字母、数字和字符检索时会匹配在事件日志。特殊字符+ – | !(){ } [ ] ^ “ ~ *?:\ 等不应包括在查询语句的一部分来匹配,如果你在搜索时有上述特殊字符请务必使用引号括起来。例如,这两个搜索将显示相同的结果: |
例1:
"http://yourwebsite.com:9000"
例2:
"http yourwebsite com 9000"
下面这个搜索将导致一个无效的查询,由于 : 没有被”“括起来引用:
http://yourwebsite.com:9000
9 区分大小写
日志易在搜索时除以下情况情况区分大小写之外,其他情况不区分大小写:
字段名称(字段值不区分大小写)
数值范围TO
逻辑运算符AND/OR/NOT
1 10 时间方案
使用下拉菜单快速挑选预设时间方案或设置一个自定义的时间范围。
预设时间方案:分钟(近10分钟、30分钟)、小时(近1小时、3小时、6小时和12小时)、天(近1天、2天、7天)默认近10分钟;
自定义时间范围:选择起至的年/日/月/小时/分钟/秒/毫秒范围,日志如果超出保存时间将不会显示搜索结果。
###搜索技巧
为了保证您能搜索到想要的结果,在搜索时请注意以下事项:
1 明确日志分组
如果不确定日志分组请选择“所有日志”。
2 请避免直接使用特殊字符,如果需要请使用引号括起来
特殊字符: + – & | ! ( ) { } [ ] ^ ” ~ * ? : \ |
这些字符是日志易的查询语言,请避免直接出现在查询中。
3 扩大时间范围
请检查您选择的时间范围,您可能误把分钟当做小时。
4 移除过滤字段和关键字
请检查搜索框中的关键字,减少选择的过滤字段。
5 检查你的拼写
小心拼写错误,您的日志事件和查询语句都有可能出错。
6 不要使用不带通配符的部分字符串
这有一个日志的例子:
Timer-2 S3Stats.processStatEvents INFO: Processed stats for Stats-6297-138
这个日志将索引以下字符串:
timer 2 S 3 stats process stat events info processed stats for stats 6297 138
因此,以下关键词在检索时将匹配:
timer
process
event*
这些关键词检索时将不匹配:
event
time