iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0

第七天了!!
我還以為已經過了半個月的說~
在第五天的時候我稍微地提到了Query DSL的功能,
有時候預設功能可能不夠滿足我們的需求就需要另外下Query來處理,
所以我們就來介紹一下基本的處理方式吧!

exists query
從字面上的意思就是有存在的,甚麼意思呢?
這是用來找出一段log是否包含我們所指定的field,
比如說我今天找user,
log內容中含有user這個field的才會被篩選出來。
這部分我們可以應用在在同一個index中,
取出某一種log,
像是Security log、Traffic log等等,
又或是說我今天重點就是對應到人的使用行為,
所以我只挑出包含使用者資訊field的log

{
  "query": {
    "exists": {
      "field": "[field名稱]"
    }
  }
}

fuzzy query
-這應該很不陌生,就是模糊查詢法~
一般我們在查找資料如果搜尋Jim,
就只會出現跟Jim完全相同內容的結果,
但模糊查詢會做一些變化:
1.將Jim這三個單字拆解找到Tim或是Jin
2.將clock這個單字進行刪除找到lock
3.在lower這個單字加入新的字母找到flower
4.對star做相鄰字元的位置調換找到tsar

{
  "query": {
    "fuzzy": {
      "[field]": {
        "value": "[要搜尋的內容]"
      }
    }
  }
}

ids query
在elasticsearch中,
每一筆log系統都會自動給予一個id也就是流水號,
這個下法就是為了當今天我們搜尋關鍵字時,
如果在同一條log中出現了多次關鍵字,
這會導致我們在做某些資料抓取的時候會重複抓取同一個log,
這個時候我們就可以將含有關鍵字的log id取出來,
最後在針對有取出來的id進行log的抓取就可以避免抓到重複的數據了!

{
  "query": {
    "ids" : {
      "values" : ["1", "4", "100"]
    }
  }
}

上一篇
Day06 Kibana Search
下一篇
Day08 Kibana的Query DSL Part2
系列文
Hey~有聽說資安跟ELK有一腿嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言