码迷,mamicode.com
首页 > 其他好文 > 详细

Kibana 搜索语法

时间:2017-12-23 21:22:57      阅读:5347      评论:0      收藏:0      [点我收藏+]

标签:pre   body   功能   class   两种   nta   相对   term   程序开发   

Kibana 搜索语法

Kibana 支持三种搜索语法, 分别是 Lucene query 语法, 基于 json 的 ES query语法, 以及 Kuery 语法. 前两种语法可以直接使用, Kuery语法需要先启用.
Lucene query 语法学习简单快速, ES query 语法相对复杂, 但更强大, 适合基于ES的程序开发.

这里仅仅关注Lucene query 语法.

参考:

http://www.cnblogs.com/pengzhen/p/6930211.html
http://xiaorui.cc/2015/02/13/%E5%9C%A8kibana%E9%87%8C%E4%BD%BF%E7%94%A8lucene%E8%AF%AD%E6%B3%95%E8%BF%9B%E8%A1%8C%E6%90%9C%E7%B4%A2query%E6%90%9C%E7%B4%A2/
https://lucene.apache.org/core/2_9_4/queryparsersyntax.html

以Key:Value的形式构建查询条件,

Key即是域名(Field), Value即是值项(Term)
默认域名可以省略掉, Lucene的默认域是text域, kibana的默认域是message域, message会包含所有日志内容.

    title:abc   # 在title这个域中搜索 abc, 所有title 包含 abc 都会被搜索出来. 
    title:"abc def"  # 在title这个域中搜索 abc def 这个完整的字符串.
    title:abc def   # 这个写法不同于上面的查询语句, 其实是两个查询条件, 在title域中搜索abc, 并且在默认域中搜索def.
    title:"1=1"   # 如果term有空格或等于号等特殊字符, 需要用双引号括起来.

对于数值项可以使用>、<、=操作符

    account_number:<100 

多个查询项的组合, 使用大写的 AND 、 OR 、NOT实现与或非.

    title:"The Right Way" AND text:go
    account_number:<100 AND balance:>47500 

支持通配符

Kibana 一般不需要使用通配符, 因为 Kibana 的 key:value 查询条件, 只要域值包含 value 就能被搜索出来, 除非我们的值项有多个特征, 可以用通配符将多个特征连起来. 
? 号可以匹配任意一个字符
* 号可以匹配任意多个字符
但通配符可以放在term的中间或尾部, 不能放在term的最前面. 

支持正则

ES 中正则性能很差,而且支持的功能也不是特别强大,尽量不要使用, 正则表达式需要用//括起来. 
    message:/[mb]oat/  # 匹配 moat 或者 boat

范围限定

方括号代表包含边界值, 花括号代表不包含边界值
    mod_date:[20020101 TO 20030101] 
    title:{Aida TO Carmen}  

Kibana 搜索语法

标签:pre   body   功能   class   两种   nta   相对   term   程序开发   

原文地址:http://www.cnblogs.com/harrychinese/p/kibana_search.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!