Skip to content
Snippets Groups Projects
Commit 107dd8da authored by Megan Henning's avatar Megan Henning
Browse files

Add info_exists key, fix count bug

parent f4c877e2
No related branches found
No related tags found
No related merge requests found
......@@ -453,7 +453,7 @@ class DataExplorerHandler(base.RequestHandler):
return_type, filters, search_string = self._parse_request(request_type='facet')
facets_q = copy.deepcopy(FACET_QUERY)
facets_q['query'] = self._construct_query(return_type, search_string, filters)['query']
facets_q['query'] = self._construct_query(None, search_string, filters)['query']
# if the query comes back with a return_type agg, remove it
facets_q['query'].pop('aggs', None)
......@@ -584,6 +584,13 @@ class DataExplorerHandler(base.RequestHandler):
}
}
if return_type == 'file':
query['script_fields'] = {
"info_exists" : {
"script" : "(params['_source'].containsKey('file') && params['_source']['file'].containsKey('info') && !params['_source']['file']['info'].empty)"
}
}
# Add search_string to "match on _all fields" query, otherwise remove unneeded logic
if search_string:
query['query']['bool']['must']['match']['_all'] = search_string
......@@ -610,7 +617,7 @@ class DataExplorerHandler(base.RequestHandler):
def _process_results(self, results, result_type):
if result_type in EXACT_CONTAINERS:
return self._process_exact_results(results)
return self._process_exact_results(results, result_type)
else:
containers = results['aggregations']['by_container']['buckets']
modified_results = []
......@@ -618,8 +625,17 @@ class DataExplorerHandler(base.RequestHandler):
modified_results.append(c['by_top_hit']['hits']['hits'][0])
return modified_results
def _process_exact_results(self, results):
return results['hits']['hits']
def _process_exact_results(self, results, result_type):
results = results['hits']['hits']
if result_type == 'file':
# Note: At some point this would be better suited
# as an indexed field rather than scripted on the fly
for r in results:
fields = r.pop('fields', {})
r['_source']['file']['info_exists'] = fields.get('info_exists')[0]
return results
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment