Class: OpenSearch::DSL::Search::Sort

Inherits:
Object
  • Object
show all
Includes:
BaseComponent
Defined in:
lib/opensearch/dsl/search/sort.rb

Overview

Wraps the ‘sort` part of a search definition

Instance Method Summary collapse

Methods included from BaseComponent

included

Constructor Details

#initialize(*args, &block) ⇒ Sort

Returns a new instance of Sort.



37
38
39
40
# File 'lib/opensearch/dsl/search/sort.rb', line 37

def initialize(*args, &block)
  @value ||= []
  super
end

Instance Method Details

#by(name, direction = nil) ⇒ Object

DSL method to specify sorting item

Examples:


search do
  sort do
    by :category
    by :clicks, order: 'desc'
  end
end


53
54
55
56
# File 'lib/opensearch/dsl/search/sort.rb', line 53

def by(name, direction=nil)
  @value << ( direction ? { name => direction } : name )
  self
end

#empty?Boolean

Return whether the definition is empty

Returns:

  • (Boolean)


78
79
80
# File 'lib/opensearch/dsl/search/sort.rb', line 78

def empty?
  to_hash.empty?
end

#to_hashHash

Convert the definition to a Hash

Returns:

  • (Hash)


62
63
64
65
66
67
68
69
70
71
72
# File 'lib/opensearch/dsl/search/sort.rb', line 62

def to_hash
  if @block
    call unless @block_called
    @block_called = true
  else
    @value << @args if @args && !@args.empty? && ! @value.include?(@args)
  end

  @hash = @value.flatten
  @hash
end