[ELK教學] Elastic Search Query 指南

Derek Wu
1 min readMay 26, 2020

--

[2021/1/8更新] 發現Elastic 有出SQL語法查詢的功能,不過需要摳摳,如果有錢的話,可以考慮,如果像我一樣沒有想花預算在這上面,下面免費的SQL對應提供給你,讓你免去損失一筆費用啦~

剛安裝Elastci要看裡面的資料,在不用Kibana 的介面下,其實也可以用URL 來查看,對於在debug的階段是很方便實用的技巧阿。

不多說進入正文:

Elasticsearch CRUD

URI 查詢 (for Linux curl & kibana dev tools可以用)

{
"_source": ["user", "message", ...],
"query":
"bool": { //超過兩個條件的時候要用bool包
"must":[{},{}] //條件1
"filter":{} //條件2
"size": ...
}

範例1:

GET /_search
{
"query": {
"bool": { //超過兩個條件的時候要用bool包
"must": [ //must:AND should:OR
{ "match": { "title": "Search" }},
{ "match": { "content": "Elasticsearch" }}
],
"filter": [ //撈完顯示部分
{ "term": { "status": "published" }},
{ "range": { "publish_date": { "gte": "2015-01-01" }}} //gte:greater-than-equal
]
}
}
}

範例2:

GET nginx-logs-2020.05.12/_search
{
"aggs": { //group by, average....
"status": {
"terms": {"field" : "status"}
}
},
"query":{
"bool":{
"must" : { "range" : {"@local_time": {"gte": "0", "lte": "now"}}},
"filter" : { "match" : {"beat.name": "127.0.0~"}}
//WHERE beat['name'] like "127.0.0~"的意思
}
},
size:3 //LIMIT 3
}

URL查詢

Elastic 也可以用url+get參數來查看資料,這邊幫大家整理好常用的SQL指令對應url參數,

如果用熟悉的SQL來表示:

Example:

SELECT status FROM nginx-logs ORDER BY @timestamp DESC=>http://localhost:9200/nginx-logs/_search?pretty&sort=@timestamp:desc&_source=status

以上,希望大家都能順利搭建ELK

基本操作 curl 參考:

1.https://blog.51cto.com/feelmanc/1250430

[Query 指南](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html)

[Query Requeset格式](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html)

如果有讓你看完這篇文,可以幫我拍手 1–10 下
如果覺得這文章對你有幫助,可以幫我拍手 10–30 下
如果覺得想看到更多關於學習筆記的文章,可以幫我拍手 30–50 下
讓我知道也記得 Follow我 DerekWu
更歡迎你在下方留言,我很樂意與你討論聊天或回答問題!

--

--

Derek Wu

B.S. in Math, 4 years Recsys engineer exp, currently pursuing M.S. in Computer Science. 數學系畢業,美國交換學生,四年演算法&系統工程師經驗,開發推薦系統。目前研究生在讀中, Work hard, play hard!