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