Class: Stretchy::Queries::FunctionScoreQuery

Inherits:
Base
  • Object
show all
Defined in:
lib/stretchy/queries/function_score_query.rb

Constant Summary collapse

SCORE_MODES =
%w(multiply sum avg first max min)
BOOST_MODES =
%w(multiply replace sum avg max min)

Instance Method Summary collapse

Methods included from Utils::Validation

#errors, included, #json_attributes, #require_one!, #require_only_one!, #valid?, #validate!, #validator

Constructor Details

#initialize(options = {}) ⇒ FunctionScoreQuery

Returns a new instance of FunctionScoreQuery.



31
32
33
34
35
36
# File 'lib/stretchy/queries/function_score_query.rb', line 31

def initialize(options = {})
  self.class.attribute_set.set(self, options) if options
  set_default_attributes
  require_only_one! :query, :filter
  validate!
end

Instance Method Details

#to_searchObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/stretchy/queries/function_score_query.rb', line 38

def to_search
  json = {}
  attributes.each do |field, value|
    json[field] = value if value
  end
  json[:functions]  = @functions.map(&:to_search)
  if @query
    json[:query]    = @query.to_search
  elsif @filter
    json[:filter]   = @filter.to_search
  else
    json[:query]    = Stretchy::Queries::MatchAllQuery.new.to_search
  end

  { function_score: json }
end