Sha256: 3b17adfe3b432104f5b55cf68c0538e99d03fe9ef3e4440672b7ce4184ff8884
Contents?: true
Size: 940 Bytes
Versions: 4
Compression:
Stored size: 940 Bytes
Contents
module Elastic::Nodes::Agg class Top < Elastic::Nodes::BaseAgg include Elastic::Nodes::Concerns::Sortable def self.build(_name, _field, _options = {}) super(_name).tap do |node| node.field = _field end end attr_accessor :field def clone prepare_clone super end def simplify prepare_clone super end def render(_options = {}) top_hit_config = { '_source' => { 'includes' => [@field.to_s] }, 'size' => 1 } top_hit_config['sort'] = render_sorts if registered_sorts.count > 0 { 'top_hits' => top_hit_config } end def handle_result(_raw, _formatter) hit = _raw['hits']['hits'].first raw_value = hit ? hit['_source'][@field.to_s] : nil # TODO: apply formatter to value Elastic::Results::Metric.new raw_value end private def prepare_clone(_clone) _clone.field = @field _clone end end end
Version data entries
4 entries across 4 versions & 1 rubygems