Navigation Menu

Skip to content

Commit

Permalink
Divide the search method.
Browse files Browse the repository at this point in the history
  • Loading branch information
daijiro committed Jun 16, 2013
1 parent f938dea commit e1e8fd1
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions lib/droonga/plugin/handler_search.rb
Expand Up @@ -38,26 +38,30 @@ def initialize(name)
command :search
def search(request)
queries = request["queries"]
outputs = process_queries(queries)
post(outputs)
end

def process_queries(queries)
return {} unless queries
query_sorter = QuerySorter.new
queries.each do |name, query|
query_sorter.add(name, [query["source"]])
end
outputs = {}
if queries
query_sorter = QuerySorter.new
queries.each do |name, query|
query_sorter.add(name, [query["source"]])
end
results = {}
query_sorter.tsort.each do |name|
if queries[name]
searcher = QuerySearcher.new(@context, queries[name])
results[name] = searcher.search(results)
outputs[name] = searcher.format if searcher.need_output?
elsif @context[name]
results[name] = @context[name]
else
raise UndefinedSourceError.new(name)
end
results = {}
query_sorter.tsort.each do |name|
if queries[name]
searcher = QuerySearcher.new(@context, queries[name])
results[name] = searcher.search(results)
outputs[name] = searcher.format if searcher.need_output?
elsif @context[name]
results[name] = @context[name]
else
raise UndefinedSourceError.new(name)
end
end
post(outputs)
return outputs
end

class QuerySorter
Expand Down

0 comments on commit e1e8fd1

Please sign in to comment.