Elasticsearch Query String 經常使用語法簡易教程
字段匹配
- 語法格式 field: value
例1:html
Level: ERROR
表示查詢日誌級別爲ERROR的數據記錄架構
條件關係 AND, OR, NOT
- AND 表示與關係
例2:elasticsearch
Level: ERROR AND Team: dealer.arch
表示查詢日誌級別爲ERROR 而且團隊是架構組的數據記錄;ide
例3:ui
CustomMessage: (error AND exception)
表示查詢自定義信息裏既包含單詞error,也包含單詞exception的數據記錄url
- OR 表示或關係
例4:.net
Level: ERROR OR CustomMessage: error
表示查詢日誌級別爲ERROR或自定義信息裏包含單詞error的數據記錄日誌
例5:code
Level: (WARN OR ERROR)
表示查詢日誌級別是ERROR或者WARN的數據記錄htm
- NOT 表示非關係
例6:
NOT Level: ERROR
表示查詢日誌級別不爲ERROR的數據記錄
使用括號對條件進行組合
例7:
CustomMessage: (error OR (warn AND exception))
表示查詢自定義信息裏包含error單詞的數據記錄或者同時包含單詞warn和exception的數據記錄
範圍查詢
例8:
Cost:[100 TO 500] Cost: (>=100 AND <=500) Cost: (+>=100 +<=500)
三條語句都表示查詢耗時Cost大於等於100毫秒而且小於等於500毫秒的數據記錄
例9:
Cost:{100 TO 500} Cost: (>100 AND <500) Cost: (+>100 +<500)
三條語句都表示查詢耗時Cost大於100毫秒而且小於500毫秒的數據記錄。注意和例8比較區間開閉的區別。
例子10:
Cost: [500 TO *} Cost: >=500
兩條語句都表示查詢耗時字段Cost大於等於500毫秒的數據記錄。TO右邊的*表示正無窮
例子11:
Cost: {* TO 100] Cost: <=100
表示查詢耗時字段Cost小於等於100毫秒的數據記錄。TO左邊的*表示負無窮
例子12:
LogAt: [2012-01-01 TO 2012-12-31]
表示查詢時間是2012年的數據記錄
這裏只是最經常使用的部分,更多用法請看官方文檔