class Elastic::Query
Add activerecord related query helpers
Attributes
index[R]
Public Class Methods
new(_index, _query_config = nil)
click to toggle source
# File lib/elastic/query.rb, line 12 def initialize(_index, _query_config = nil) @index = _index @config = _query_config || build_base_config end
Public Instance Methods
aggregate(_node)
click to toggle source
# File lib/elastic/query.rb, line 69 def aggregate(_node) execute assembler.assemble_metric _node end
as_es_query()
click to toggle source
# File lib/elastic/query.rb, line 59 def as_es_query assembler.assemble.render end
as_query_node()
click to toggle source
# File lib/elastic/query.rb, line 55 def as_query_node @config.query.clone end
compose(&_block)
click to toggle source
# File lib/elastic/query.rb, line 63 def compose(&_block) agg_nodes = [] Dsl::ResultComposer.new(agg_nodes).tap(&_block) execute assembler.assemble_metrics agg_nodes end
ids()
click to toggle source
# File lib/elastic/query.rb, line 38 def ids execute assembler.assemble_ids end
limit(_size)
click to toggle source
# File lib/elastic/query.rb, line 17 def limit(_size) with_clone { |config| config.limit = _size } end
Also aliased as: size
offset(_offset)
click to toggle source
# File lib/elastic/query.rb, line 22 def offset(_offset) with_clone { |config| config.offset = _offset } end
pick(_field)
click to toggle source
# File lib/elastic/query.rb, line 42 def pick(_field) execute assembler.assemble_pick(_field) end
result(_reset = false)
click to toggle source
# File lib/elastic/query.rb, line 50 def result(_reset = false) @result = nil if _reset @result ||= execute(assembler.assemble) end
segment(*_params)
click to toggle source
# File lib/elastic/query.rb, line 32 def segment(*_params) with_clone do |config| config.groups << Commands::BuildAggFromParams.for(index: index, params: _params) end end
sort(*_params)
click to toggle source
# File lib/elastic/query.rb, line 26 def sort(*_params) with_clone do |config| config.sort = Commands::BuildSortFromParams.for(index: index, params: _params) end end
total()
click to toggle source
# File lib/elastic/query.rb, line 46 def total execute assembler.assemble_total end
Private Instance Methods
assembler()
click to toggle source
# File lib/elastic/query.rb, line 94 def assembler Core::QueryAssembler.new(@index, @config) end
build_base_config()
click to toggle source
# File lib/elastic/query.rb, line 85 def build_base_config Core::QueryConfig.initial_config end
execute(_query)
click to toggle source
# File lib/elastic/query.rb, line 89 def execute(_query) raw = @index.connector.query(query: _query.render) _query.handle_result(raw, formatter) end
formatter()
click to toggle source
# File lib/elastic/query.rb, line 98 def formatter Core::SourceFormatter.new(@index.definition) end
with_bool_query(&_block)
click to toggle source
# File lib/elastic/query.rb, line 81 def with_bool_query(&_block) with_clone { |config| _block.call(config.query) } end
with_clone(&_block)
click to toggle source
# File lib/elastic/query.rb, line 75 def with_clone(&_block) new_config = @config.clone _block.call(new_config) self.class.new(@index, new_config) end