Class: Droonga::DistributedSearchPlanner

Inherits:
DistributedCommandPlanner show all
Defined in:
lib/droonga/plugin/planner/distributed_search_planner.rb

Defined Under Namespace

Classes: QueryTransformer

Constant Summary

Constants inherited from DistributedCommandPlanner

Droonga::DistributedCommandPlanner::DEFAULT_LIMIT, Droonga::DistributedCommandPlanner::REDUCE_SUM

Instance Attribute Summary

Attributes inherited from DistributedCommandPlanner

#dataset, #key

Instance Method Summary collapse

Methods inherited from DistributedCommandPlanner

#broadcast, #reduce, #scatter

Constructor Details

#initialize(search_request_message) ⇒ DistributedSearchPlanner

Returns a new instance of DistributedSearchPlanner.

Raises:

  • (NoQuery)


23
24
25
26
27
28
29
30
31
# File 'lib/droonga/plugin/planner/distributed_search_planner.rb', line 23

def initialize(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:



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/droonga/plugin/planner/distributed_search_planner.rb', line 33

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

  Searcher::QuerySorter.validate_dependencies(@queries)

  ensure_unifiable!

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

  @dataset = @source_message["dataset"] || @request["dataset"]
  broadcast(:body => @request)
  
  super
end