nodes: 0, module; 1, function_definition; 2, function_name:search; 3, parameters; 4, block; 5, identifier:self; 6, identifier:text; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, default_parameter; 11, expression_statement; 12, expression_statement; 13, expression_statement; 14, return_statement; 15, identifier:limit; 16, integer:1000; 17, identifier:order_by; 18, None; 19, identifier:sort_order; 20, None; 21, identifier:filter; 22, None; 23, comment:"""
          Do a fulltext search for series in the Fred dataset. Returns information about matching series in a DataFrame.
  
          Parameters
          ----------
          text : str
              text to do fulltext search on, e.g., 'Real GDP'
          limit : int, optional
              limit the number of results to this value. If limit is 0, it means fetching all results without limit.
          order_by : str, optional
              order the results by a criterion. Valid options are 'search_rank', 'series_id', 'title', 'units', 'frequency',
              'seasonal_adjustment', 'realtime_start', 'realtime_end', 'last_updated', 'observation_start', 'observation_end',
              'popularity'
          sort_order : str, optional
              sort the results by ascending or descending order. Valid options are 'asc' or 'desc'
          filter : tuple, optional
              filters the results. Expects a tuple like (filter_variable, filter_value).
              Valid filter_variable values are 'frequency', 'units', and 'seasonal_adjustment'
  
          Returns
          -------
          info : DataFrame
              a DataFrame containing information about the matching Fred series
          """; 24, assignment; 25, assignment; 26, identifier:info; 27, identifier:url; 28, binary_operator:"%s/series/search?search_text=%s&" % (self.root_url,
                                                      quote_plus(text)); 29, identifier:info; 30, call; 31, string:"%s/series/search?search_text=%s&"; 32, tuple; 33, attribute; 34, argument_list; 35, attribute; 36, call; 37, identifier:self; 38, identifier:__get_search_results; 39, identifier:url; 40, identifier:limit; 41, identifier:order_by; 42, identifier:sort_order; 43, identifier:filter; 44, identifier:self; 45, identifier:root_url; 46, identifier:quote_plus; 47, argument_list; 48, identifier:text
code: def search(self, text, limit=1000, order_by=None, sort_order=None, filter=None):
          """
          Do a fulltext search for series in the Fred dataset. Returns information about matching series in a DataFrame.
  
          Parameters
          ----------
          text : str
              text to do fulltext search on, e.g., 'Real GDP'
          limit : int, optional
              limit the number of results to this value. If limit is 0, it means fetching all results without limit.
          order_by : str, optional
              order the results by a criterion. Valid options are 'search_rank', 'series_id', 'title', 'units', 'frequency',
              'seasonal_adjustment', 'realtime_start', 'realtime_end', 'last_updated', 'observation_start', 'observation_end',
              'popularity'
          sort_order : str, optional
              sort the results by ascending or descending order. Valid options are 'asc' or 'desc'
          filter : tuple, optional
              filters the results. Expects a tuple like (filter_variable, filter_value).
              Valid filter_variable values are 'frequency', 'units', and 'seasonal_adjustment'
  
          Returns
          -------
          info : DataFrame
              a DataFrame containing information about the matching Fred series
          """
          url = "%s/series/search?search_text=%s&" % (self.root_url,
                                                      quote_plus(text))
          info = self.__get_search_results(url, limit, order_by, sort_order, filter)
          return info