ELK 查询语法

前言

主要是针对 discover查询中与或非条件的使用介绍,贴了一些的示例

定义查询条件 A: *ImAbstractObject, B: 910001584, C: H_GOODS.

逻辑操作. 多个条件组合

与、或、非 三种关系
+ 或 AND(大写) : 表示与
默认(缺省) 或 OR(大写):表示或
- 或 NOT(大写): 表示非

场景一:求并集,多个条件任意满足

数学符号: A ∪ B ∪ C (A 或 B 或 C)
三个条件满足一个即可 (默认是并集)。 下面两个截图表示的是同一个含义,两种写法
ELK 查询语法

ELK 查询语法

场景二: 求交集,多个条件均需满足

数学符号表示为: ( A ∩ ﹁B ) ∪ ( (A ∩ ﹁B ∩ C )
可等效简化为: A ∩ ﹁B
tip: 这个表示的信息,和数学上的条件组合有所差别. 如果想表示 (A ∩ ﹁B) ∪ C. 请使用分组, 用()包含起来,见下面的场景
以下查询条件表示: A必须存在,B必须不存在,C可有可无.
ELK 查询语法

ELK 查询语法

场景三 条件取反,不包含某个条件

数学符号:(A ∩ ﹁B) ∪ C
以下表示:(A ∩ ﹁B) ∪ C . 即 (A 且 非B) 或 C .
下面的小括号表示对条件进行分组. 括号的优先级最高。
查询条件表示:(结果集1:A必须存在,B必须不存在) U (结果集2:C必须存在) 这两个结果集的并集
ELK 查询语法
ELK 查询语法

对字段查询

单字段查询

message中,(A ∩ ﹁B) ∩ C
ELK 查询语法

多字段查询

message字段和host字段都必须满足下面输入的查询条件
ELK 查询语法


网上摘抄的示例

http://blog.csdn.net/wzygis/article/details/52100425
全文搜索
在搜索栏输入login,会返回所有字段值中包含login的文档

使用双引号包起来作为一个短语搜索
“like Gecko”
ELK 查询语法

字段
也可以按页面左侧显示的字段搜索
限定字段全文搜索:field:value
精确搜索:关键字加上双引号 filed:”value”
http.code:404 搜索http状态码为404的文档

字段本身是否存在
exists:http:返回结果中需要有http字段
missing:http:不能含有http字段

通配符
? 匹配单个字符
* 匹配0到多个字符

kiba?a, el*search

? * 不能用作第一个字符,例如:?text *text
正则
es支持部分正则功能
mesg:/mes{2}ages?/

模糊搜索
~:在一个单词后面加上~启用模糊搜索

first~ 也能匹配到 frist

还可以指定需要多少相似度
cromm~0.3 会匹配到 from 和 chrome
数值范围0.0 ~ 1.0,默认0.5,越大越接近搜索的原始值

近似搜索
在短语后面加上~
“select where”~3 表示 select 和 where 中间隔着3个单词以内

范围搜索
数值和时间类型的字段可以对某一范围进行查询
length:[100 TO 200]
date:{“now-6h” TO “now”}
[ ] 表示端点数值包含在范围内,{ } 表示端点数值不包含在范围内

逻辑操作
AND
OR

+:搜索结果中必须包含此项
-:不能含有此项
+apache -jakarta test:结果中必须存在apache,不能有jakarta,test可有可无

分组
(jakarta OR apache) AND jakarta

字段分组
title:(+return +”pink panther”)

转义特殊字符
+ - && || ! () {} [] ^” ~ * ? : \

以上字符当作值搜索的时候需要用\转义