Class: Elasticsearch::DSL::Search::Aggregations::BucketSort

Inherits:
Object
  • Object
show all
Includes:
BaseAggregationComponent
Defined in:
lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_sort.rb

Overview

A parent pipeline aggregation which sorts the buckets of its parent multi-bucket aggregation.

Examples:

Passing the options as a Hash


aggregation :sales_bucket_filter do
  bucket_sort gap_policy: 'insert_zero'
end

Passing the options as a block


aggregation :sales_bucket_sort do
  bucket_sort do
    sort do
      by :total_sales, order: 'desc'
    end
    size 3
  end
end

See Also:

Instance Method Summary collapse

Methods included from BaseAggregationComponent

included

Instance Method Details

#sort(*args, &block) ⇒ Sort, Hash

Add a sort clause to the search definition.

Examples:


bucket_sort do
  sort do
    by :total_sales, order: 'desc'
  end
end

Returns:

  • (Sort, Hash)

    The sort definition.

Since:

  • 0.1.9



47
48
49
50
51
52
53
54
# File 'lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_sort.rb', line 47

def sort(*args, &block)
  if !args.empty? || block
    @sort = Sort.new(*args, &block)
    self
  else
    @sort
  end
end

#to_hashHash

Get a hash representation of the aggregation.

client.search(body: s.to_hash)

Examples:


s = search do
  aggregation do
    bucket_sort do
      sort do
        by :total_sales, order: 'desc'
      end
    end
  end
end

Returns:

  • (Hash)

    The hash representation of the aggregation.

Since:

  • 0.1.9



75
76
77
78
79
80
81
82
83
84
# File 'lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_sort.rb', line 75

def to_hash
  call

  if @aggregations
    @hash[:aggregations] = @aggregations.to_hash
  end

  @hash[name].merge!(sort: @sort.to_hash) if @sort
  @hash
end