Kouhei Sutou
null+****@clear*****
Thu Oct 31 12:32:52 JST 2013
Kouhei Sutou 2013-10-31 12:32:52 +0900 (Thu, 31 Oct 2013) New Revision: 80cf22d091ac3e698cf89d588caac5e6455af5ba https://github.com/droonga/fluent-plugin-droonga/commit/80cf22d091ac3e698cf89d588caac5e6455af5ba Message: Add trace logs to query searcher Modified files: lib/droonga/searcher.rb Modified: lib/droonga/searcher.rb (+31 -13) =================================================================== --- lib/droonga/searcher.rb 2013-10-31 12:31:32 +0900 (365cd7e) +++ lib/droonga/searcher.rb 2013-10-31 12:32:52 +0900 (6775172) @@ -222,41 +222,55 @@ module Droonga end def search_query(results) + $log.trace("#{log_tag}: search_query: start") @start_time = Time.now @result = source = results[@query["source"]] if @query["condition"] expression = Groonga::Expression.new(context: @context) expression.define_variable(:domain => source) parseCondition(source, expression, @query["condition"]) + $log.trace("#{log_tag}: search_query: select: start") @result = source.select(expression) + $log.trace("#{log_tag}: search_query: select: done") @condition = expression end - if @query["groupBy"] - if @query["groupBy"].is_a? String - @result =****@resul*****(@query["groupBy"]) - elsif @query["groupBy"].is_a? Hash - key = @query["groupBy"]["key"] - max_n_sub_records = @query["groupBy"]["maxNSubRecords"] + group_by = @query["groupBy"] + if group_by + $log.trace("#{log_tag}: search_query: group: start", + :by => group_by) + if group_by.is_a? String + @result =****@resul*****(group_by) + elsif group_by.is_a? Hash + key = group_by["key"] + max_n_sub_records = group_by["maxNSubRecords"] @result =****@resul*****(key, :max_n_sub_records => max_n_sub_records) else raise '"groupBy" parameter must be a Hash or a String' end + $log.trace("#{log_tag}: search_query: group: done", + :by => group_by) end @count =****@resul***** - if @query["sortBy"] - if @query["sortBy"].is_a? Array - keys = parse_order_keys(@query["sortBy"]) + sort_by = @query["sortBy"] + if sort_by + $log.trace("#{log_tag}: search_query: sort: start", + :by => sort_by) + if sort_by.is_a? Array + keys = parse_order_keys(sort_by) offset = 0 limit = -1 - elsif @query["sortBy"].is_a? Hash - keys = parse_order_keys(@query["sortBy"]["keys"]) - offset = @query["sortBy"]["offset"] - limit = @query["sortBy"]["limit"] + elsif sort_by.is_a? Hash + keys = parse_order_keys(sort_by["keys"]) + offset = sort_by["offset"] + limit = sort_by["limit"] else raise '"sortBy" parameter must be a Hash or an Array' end @result =****@resul*****(keys, :offset => offset, :limit => limit) + $log.trace("#{log_tag}: search_query: sort: done", + :by => sort_by) end + $log.trace("#{log_tag}: search_query: done") @result end @@ -390,6 +404,10 @@ module Droonga } end end + + def log_tag + "[#{Process.ppid}][#{Process.pid}] query_searcher" + end end end end -------------- next part -------------- HTML����������������������������...Download