From c0c3ac5ef8a717736beb8740a02d7052fa81ebb9 Mon Sep 17 00:00:00 2001 From: Megan Henning Date: Thu, 5 Oct 2017 16:24:07 -0500 Subject: [PATCH 1/2] Fix terms search, more info on error --- api/handlers/dataexplorerhandler.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/api/handlers/dataexplorerhandler.py b/api/handlers/dataexplorerhandler.py index 602d4b2b4..09893c810 100644 --- a/api/handlers/dataexplorerhandler.py +++ b/api/handlers/dataexplorerhandler.py @@ -1,7 +1,7 @@ import copy import json -from elasticsearch import ElasticsearchException, TransportError, helpers +from elasticsearch import ElasticsearchException, TransportError, RequestError, helpers from ..web import base from .. import config @@ -372,6 +372,10 @@ def _parse_request(self, request_type='search'): else: modified_filters.append({'terms': {k+'.raw': v}}) + elif f.get('term'): + # Search raw field + for k,v in f['term'].iteritems(): + modified_filters.append({'term': {k+'.raw': v}}) else: modified_filters.append(f) @@ -687,11 +691,14 @@ def _construct_exact_query(self, return_type, search_string, filters, size=100): ## RUNNING QUERIES AND PROCESSING RESULTS ## def _run_query(self, es_query, result_type): - results = config.es.search( - index='data_explorer', - doc_type='flywheel', - body=es_query - ) + try: + results = config.es.search( + index='data_explorer', + doc_type='flywheel', + body=es_query + ) + except RequestError as e: + self.abort(400, 'Unable to parse filters - invalid format.') return self._process_results(results, result_type) From c2db9c22d086b0728c07a2c9d2456c68af0f6e15 Mon Sep 17 00:00:00 2001 From: Megan Henning Date: Thu, 5 Oct 2017 16:28:37 -0500 Subject: [PATCH 2/2] Fix pylint --- api/handlers/dataexplorerhandler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/handlers/dataexplorerhandler.py b/api/handlers/dataexplorerhandler.py index 09893c810..9113ea686 100644 --- a/api/handlers/dataexplorerhandler.py +++ b/api/handlers/dataexplorerhandler.py @@ -697,7 +697,7 @@ def _run_query(self, es_query, result_type): doc_type='flywheel', body=es_query ) - except RequestError as e: + except RequestError: self.abort(400, 'Unable to parse filters - invalid format.') return self._process_results(results, result_type)