Kouhei Sutou
null+****@clear*****
Tue May 27 16:05:50 JST 2014
Kouhei Sutou 2014-05-27 16:05:50 +0900 (Tue, 27 May 2014) New Revision: a2034b931933bcd5eb49d2837c64072be4ffcd4e https://github.com/droonga/droonga-engine/commit/a2034b931933bcd5eb49d2837c64072be4ffcd4e Message: Extract complex predicate as a method Modified files: lib/droonga/plugins/search/distributed_search_planner.rb Modified: lib/droonga/plugins/search/distributed_search_planner.rb (+14 -10) =================================================================== --- lib/droonga/plugins/search/distributed_search_planner.rb 2014-05-27 13:20:02 +0900 (dcc564f) +++ lib/droonga/plugins/search/distributed_search_planner.rb 2014-05-27 16:05:50 +0900 (67582fa) @@ -77,18 +77,9 @@ module Droonga end def transform_query(input_name, query) - output = query["output"] - - # Skip reducing phase for a result with no output. - if output.nil? or - output["elements"].nil? or - (!output["elements"].include?("count") and - !output["elements"].include?("records")) - return - end + return unless need_reduce?(query) transformer = QueryTransformer.new(query) - elements = transformer.mappers mapper = {} mapper["elements"] = elements unless elements.empty? @@ -96,6 +87,19 @@ module Droonga :gather => mapper }) end + def need_reduce?(query) + output = query["output"] + return false if output.nil? + + output_elements = output["elements"] + return false if output_elements.nil? + + need_reduce_elements = ["count", "records"] + output_elements.any? do |element| + need_reduce_elements.include?(element) + end + end + class QueryTransformer attr_reader :reducers, :mappers -------------- next part -------------- HTML����������������������������...下載