class LogExtractor::Search

Constants

SCROLL

Public Instance Methods

response() click to toggle source
# File lib/log_extractor/search.rb, line 9
def response
  client.search body: body, scroll: SCROLL
end
scroll() click to toggle source
# File lib/log_extractor/search.rb, line 13
def scroll
  client.scroll body: { scroll_id: scroll_id }, scroll: SCROLL
end

Private Instance Methods

body() click to toggle source
# File lib/log_extractor/search.rb, line 19
def body
  {
    query: body_query,
    sort: body_sort
  }
end
body_query() click to toggle source
# File lib/log_extractor/search.rb, line 26
def body_query
  {
    bool: {
      must: [
        { range: body_query_range },
        { query_string: { query: query } }
      ]
    }
  }
end
body_query_range() click to toggle source
# File lib/log_extractor/search.rb, line 37
def body_query_range
  {
    "@timestamp" => {
      gte: "now-#{period}m/m",
      lt: "now/m"
    }
  }
end
body_sort() click to toggle source
# File lib/log_extractor/search.rb, line 46
def body_sort
  [
    {
      "@timestamp" => {
        order: "desc"
      }
    }
  ]
end
client() click to toggle source
# File lib/log_extractor/search.rb, line 60
def client
  @client ||= Elasticsearch::Client.new
end
scroll_id() click to toggle source
# File lib/log_extractor/search.rb, line 56
def scroll_id
  @scroll_id ||= response["_scroll_id"]
end