Class: Droonga::Plugins::Search::DistributedSearchPlanner

Inherits:
DistributedCommandPlanner show all
Defined in:
lib/droonga/plugins/search/distributed_search_planner.rb

Defined Under Namespace

Classes: QueryTransformer

Constant Summary

Constants inherited from DistributedCommandPlanner

DistributedCommandPlanner::DEFAULT_LIMIT, DistributedCommandPlanner::REDUCE_SUM

Instance Attribute Summary

Attributes inherited from DistributedCommandPlanner

#key

Instance Method Summary collapse

Methods inherited from DistributedCommandPlanner

#broadcast, #reduce, #scatter

Constructor Details

#initialize(dataset, search_request_message) ⇒ DistributedSearchPlanner

Returns a new instance of DistributedSearchPlanner.

Raises:

  • (NoQuery)


25
26
27
28
29
30
31
32
33
# File 'lib/droonga/plugins/search/distributed_search_planner.rb', line 25

def initialize(dataset, search_request_message)
  super

  @request = @source_message["body"]
  raise NoQuery.new unless @request

  @request = Marshal.load(Marshal.dump(@request))
  @queries = @request["queries"]
end

Instance Method Details

#planObject

Raises:



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/droonga/plugins/search/distributed_search_planner.rb', line 35

def plan
  raise Searcher::NoQuery.new if @queries.nil? or @queries.empty?

  Searcher::QuerySorter.validate_dependencies(@queries)

  ensure_unifiable!

  @queries.each do |input_name, query|
    transform_query(input_name, query)
  end

  broadcast(:body => @request)

  super
end