class Elasticsearch::DSL::Search::Aggregations::Range

A multi-bucket aggregation which returns document counts for custom numerical ranges, which define the buckets

@example

search do
  aggregation :clicks do
    range field: 'clicks',
          ranges: [
            { to: 10 },
            { from: 10, to: 20 }
          ]
  end
end

@example Using custom names for the ranges

search do
  aggregation :clicks do
    range do
      field 'clicks'
      key :low, to: 10
      key :mid, from: 10, to: 20
    end
  end
end

@see www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-range-aggregation.html

Public Instance Methods

key(key, value) click to toggle source
# File lib/elasticsearch/dsl/search/aggregations/range.rb, line 59
def key(key, value)
  @hash[name].update(@args) if @args
  @hash[name][:keyed] = true unless @hash[name].has_key?(:keyed)
  @hash[name][:ranges] ||= []
  @hash[name][:ranges] << value.merge(key: key) unless @hash[name][:ranges].any? { |i| i[:key] == key }
  self
end