diff --git a/api/handlers/dataexplorerhandler.py b/api/handlers/dataexplorerhandler.py index 7bb87eb2d721c348f70db0848318ee7c0928d29b..c2c8aeeb372477eefe2e61255c4fd1eb02734462 100644 --- a/api/handlers/dataexplorerhandler.py +++ b/api/handlers/dataexplorerhandler.py @@ -321,7 +321,7 @@ class DataExplorerHandler(base.RequestHandler): except (ValueError): if request_type == 'search': self.abort(400, 'Must specify return type') - return None, None, None + return None, None, None, 0 # Parse and validate return_type return_type = request.get('return_type') @@ -387,6 +387,11 @@ class DataExplorerHandler(base.RequestHandler): # Parse and "validate" search_string, allowed to be non-existent search_string = str(request.get('search_string', '')) + + if request_type == 'facet': + # size is assumed 0 for facets + return return_type, modified_filters, search_string, 0 + # Determine query size, if size=all figure out max for return type. size = self.request.params.get('size') if not size: @@ -480,10 +485,10 @@ class DataExplorerHandler(base.RequestHandler): @require_login def get_facets(self): - _, filters, search_string = self._parse_request(request_type='facet') + _, filters, search_string, _ = self._parse_request(request_type='facet') facets_q = copy.deepcopy(FACET_QUERY) - facets_q['query'] = self._construct_query(None, search_string, filters)['query'] + facets_q['query'] = self._construct_query(None, search_string, filters, 0)['query'] # if the query comes back with a return_type agg, remove it facets_q['query'].pop('aggs', None) @@ -528,11 +533,10 @@ class DataExplorerHandler(base.RequestHandler): def get_nodes(self): - return_type, filters, search_string = self._parse_request() + return_type, filters, search_string, size = self._parse_request() if return_type == 'file': return self.get_file_nodes(return_type, filters, search_string) - size = self.search_size(return_type) body = self._construct_query(return_type, search_string, filters, size) body['aggs']['by_container'].pop('aggs')