1. 使用双引号包起来做为一个短语搜索: "like Gecko"java
2. ? 匹配单个字符; * 匹配0到多个字符正则表达式
例如:kiba?a, el*searchchrome
? * 不能用做第一个字符,例如:?text *textapache
3. 限定字段全文搜索:field:value; 匹配的是整个单词,不然可能匹配不了。key只能是json的最外层的。json
4. 精确搜索:关键字加上双引号 filed:"value" , key只能是json的最外层的。segmentfault
5. 模糊搜索:app
quikc~ brwn~ foks~dom
~:在一个单词后面加上~启用模糊搜索,能够搜到一些拼写错误的单词。first~ 这种也能匹配到 frist、elasticsearch
还能够设置编辑距离(整数),指定须要多少类似度ui
cromm~1 会匹配到 from 和 chrome
默认2,越大越接近搜索的原始值,设置为1基本能搜到80%拼写错误的单词
6. 能够经过左侧添加filter选项
7. 鼠标放在搜索结果上,会有 放大符号和缩小符号,点击能够做为 筛选条件,包含或者不包含某些值
8. 若是查询的时候没有明确查询的字段,会默认为 _all 字段,也就是全文查询。也能够指定一个字段,又称为 field 来查询。
简易查询:
# 全文查询 Exception: Exception
# 指定查询字段 message 里的 Exception: message: Exception
# 查询短语: message: "java.lang.NullPointerException"
# 任何 message 字段都包含 Exception: message\*: Exception
# 通配符的使用,? 代替单个字符,* 代替零个或者多个字符: message: Exceptio*
# 正则表达式经过使用 / 包围,能够植入到查询的字符串中: message: /Ex?(cep[tion])/
# 另外一个正则的使用,匹配的含义是「两位非abc的任意字符」: info.recallId: /[^abc]{2}/
9. 多字段查询
能够经过一些布尔操做符来使用,若是查询中没有任意的操做符号,那么默认使用 OR 操做符。
# 支持 AND, OR, NOT,也能够写成&&, ||, !操做符: message: ((Exception AND Error) OR (Error AND Exception) OR Error) AND NOT Exception、
# 包含 lucene 但不包含 elasticsearch : lucene NOT elasticsearch (NOT 必须大写)
# + 必须包含,其余无关紧要,lucene 必须包含,apache 无关紧要...:+lucene apache
# 不能出现的操做符号"-",包含了 lucence,但不包含 apache...:+lucene-apache
一个字段内查询多个内容,用&&或者and链接:msg:"更新每日"&&"19041112210104855593" ,msg:"更新每日" AND "19041112210104855593"
10. 范围操做,能够指定日期、数字或者字符串字段的范围:
# [min TO max] 是闭区间
# {min TO max} 是开区间
@timestamp: [1510536210000 TO 1510550000000]
# * 表示一端不限制范围
count:[10 TO *]
11. 转义,保留字符包括如下,须要使用转义符来进行转义:
# 例子:message: "domain\=jobmd_ent4ent"
# 转义符:+-=&&||><!(){}[]^"~*?:\/
12. 模糊查询
使用"~”字符以及一个紧随其后的整数值,当使用该修饰符修饰一个词项的时候,意味着咱们想搜索那些包含该此项近词项的文档。"~"字符后的整数值肯定了近似词项与原始词项的最大编辑距离。
# mastering book Elasticsearch 也会被认为匹配
title: "mastering Elasticsearch"~2
13. Kibana 中一些好用的功能
1) Save Search:能够保存以前的 query,经过历史记录能够查找最近的使用。
2) 时间过滤器:能够设置相对 relative 或者绝对 absolute 时间过滤器,前者是相对于当前时间的时间,后者是绝对时间。
3)自动刷新:固定的查询条件的状况下,能够设置自动刷新的时间来刷新可视区域。
4)直方图选择区域:选择区域能够出发时间过滤器。
5)字段列表搜索字段:能够经过 add 添加不一样组合。
6)share 功能:导航栏处有一个 share 按钮,将查询的语句经过连接的方式进行分享,分别团队成员一块儿查询。
7)应用例子-某用户的推荐 bad case: 肯定这个 bad case 的请求参数,拿到 id 和 domain, 肯定请求发生的时间或者时间段
# 已知 domain 为 bbs_app_recomm,而且用户名为「oscar」的请求,在2017年11月7日 下午4点先后,有一次推荐的 bad case,须要此次推荐的过程,了解为什么会产生此次推荐的结果。
# 经过查询到的结果上下浏览,获得该用户的 recall 和 rerank 结果,大体能够找到 bad case 的缘由。
message: "oscar" AND @timestamp: 1510042056000