Class: Plunk::ResultSet

Inherits:
Object
  • Object
show all
Defined in:
lib/plunk/result_set.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ ResultSet

Returns a new instance of ResultSet.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/plunk/result_set.rb', line 5

def initialize(opts={})
  @query = { query: { filtered: {}}}

  if opts.size >= 3 # use "and" filter to AND filters
    @query_string = opts[:query_string]
    @query[:query][:filtered][:query] = {
      query_string: {
        query: opts[:query_string] }}
    @query[:query][:filtered][:filter] = {
      and: [
        range: {
          '@timestamp' => {
            gte: opts[:start_time],
            lte: opts[:end_time] }}]}
  else
    if @query_string = opts[:query_string]
      @query[:query][:filtered][:query] = {
        query_string: {
          query: opts[:query_string] }}
    elsif opts[:start_time] and opts[:end_time]
      @query[:query][:filtered][:query] = {
        range: {
          '@timestamp' => {
            gte: opts[:start_time],
            lte: opts[:end_time] }}}
    end
  end
end

Instance Attribute Details

#queryObject

Returns the value of attribute query.



3
4
5
# File 'lib/plunk/result_set.rb', line 3

def query
  @query
end

#query_stringObject

Returns the value of attribute query_string.



3
4
5
# File 'lib/plunk/result_set.rb', line 3

def query_string
  @query_string
end

Instance Method Details

#evalObject



34
35
36
37
38
39
# File 'lib/plunk/result_set.rb', line 34

def eval
  Plunk.elasticsearch_client.search(
    body: @query.to_json,
    size: Plunk.max_number_of_hits || 10
  ).to_json if @query
end