根据某个字段查询
- 精确匹配:
agent:"Mozilla/5.0"
- 如果不带双引号,只要包含指定值就可以搜索到
agent:Mozilla/5.0
- 如果是数值类型没有以上区别
范围查询
类型 | 语法 |
---|---|
指定区间 | response:[100 TO 200] |
大于等于 | response:[201 TO *] |
小于等于 | response:[* TO 200] |
大于指定数值 | response:{10 TO 20} |
注意:TO 必须是大写, [ ] 表示端点数值包含在范围内,{ } 表示端点数值不包含在范围内。
不等于
- 不等于:
NOT
例子:查询名字不为李四的学生NOT name:"lisi"
从指定时间到现在/或者查询指定时间前数据
-
2015-05-20T09:20:41.943Z之后的数据:
@timestamp:{2015-05-20T09:20:41.943Z TO *}
-
2015-05-20T09:20:41.943Z之前的数据:
@timestamp:{* TO 2015-05-20T09:20:41.943Z }
-
指定时间范围:
@timestamp:{2015-05-20T09:20:41.943Z TO 015-05-22T09:20:41.943Z}
注意:TO 必须是大写;09:20:41事实上是17:20:41,存在8个小时差
模糊搜索
- ~ : 在一个单词后面加上~启用模糊搜索
first~
也能匹配到 frist
近似搜索
- 在短语后面加上~
"select where"~3
表示 select 和 where 中间隔着3个单词以内。
正则匹配
-
包含指定值:
request:/uploads*/
-
不包含指定值:
!request:/uploads*/
逻辑查询
-
AND(并且)
request:/uploads*/ AND response:404
-
OR(或者)
request:/uploads*/ OR response:200
-
组合查询
(uid OR token) AND version
存在/不存在
-
存在
_exists_:http
:返回结果中需要有 http 字段 -
不存在
_missing_:http
:不能含有 http 字段
通配符
-
? 匹配单个字符
-
* 匹配0到多个字符
kiba?a, el*search
? * 不能用作第一个字符,例如 :?text *text
特殊转义字符
+ – && || ! () {} [] ^” ~ * ? : \
以上字符当作值搜索的时候需要用\转义