def search(q, options={})
      if q.is_a?(Hash)
        options = q
        q = "site:#{options.delete(:site)}" if options[:site]
      else
        q += " site:#{options.delete(:site)}" if options[:site]
      end
      options = set_window_or_default(options)
      results = handle_response(get("/search.json", :query => {:q => q}.merge(options)))
      Topsy::Page.new(results,Topsy::LinkSearchResult)
    end
def search(q, options={})
      if q.is_a?(Hash)
        options = q
        q = "site:#{options.delete(:site)}" if options[:site]
      else
        q += " site:#{options.delete(:site)}" if options[:site]
      end
      options = set_window_or_default(options)
      results = handle_response(get("/search.json", :query => {:q => q}.merge(options)))
      Topsy::Page.new(results,Topsy::LinkSearchResult)
    end
Returns list of results for a query.

 @param [String] q the search query string
 @param [Hash] options method options
 @option options [Symbol] :window Time window for results. (default: :all) Options: :dynamic most relevant, :hour last hour, :day last day, :week last week, :month last month, :all all time. You can also use the h6 (6 hours) d3 (3 days) syntax.
 @option options [Integer] :page page number of the result set. (default: 1, max: 10)
 @option options [Integer] :perpage limit number of results per page. (default: 10, max: 50)
 @option options [String] :site narrow results to a domain
 @return [Topsy::Page]