def es_results(self): case_es = self.case_es query = self.build_query(case_type=self.case_type, filter=self.case_filter, status=self.case_status, owner_ids=self.case_owners, search_string=SearchFilter.get_value(self.request, self.domain)) query_results = case_es.run_query(query) if query_results is None or 'hits' not in query_results: logging.error("CaseListMixin query error: %s, urlpath: %s, params: %s, user: %s yielded a result indicating a query error: %s, results: %s" % ( self.__class__.__name__, self.request.path, self.request.GET.urlencode(), self.request.couch_user.username, simplejson.dumps(query), simplejson.dumps(query_results) )) return query_results
def _build_query(self): query = (case_es.CaseES().domain(self.domain).size( self.pagination.count).start(self.pagination.start)) query.es_query['sort'] = self.get_sorting_block() mobile_user_and_group_slugs = self.request.GET.getlist(EMWF.slug) if self.case_filter: query = query.filter(self.case_filter) query = query.NOT(case_es.case_type("user-owner-mapping-case")) if self.case_type: query = query.case_type(self.case_type) if self.case_status: query = query.is_closed(self.case_status == 'closed') if self.request.can_access_all_locations and EMWF.show_all_data( mobile_user_and_group_slugs): pass elif self.request.can_access_all_locations and EMWF.show_project_data( mobile_user_and_group_slugs): # Show everything but stuff we know for sure to exclude user_types = EMWF.selected_user_types(mobile_user_and_group_slugs) ids_to_exclude = self.get_special_owner_ids( admin=HQUserType.ADMIN not in user_types, unknown=HQUserType.UNKNOWN not in user_types, demo=HQUserType.DEMO_USER not in user_types, commtrack=False, ) query = query.NOT(case_es.owner(ids_to_exclude)) else: # Only show explicit matches query = query.owner(self.case_owners) if not self.request.can_access_all_locations: query = query.OR(self.scope_filter()) search_string = SearchFilter.get_value(self.request, self.domain) if search_string: query = query.set_query({"query_string": {"query": search_string}}) return query
def es_results(self): case_es = self.case_es query = self.build_query(case_type=self.case_type, afilter=self.case_filter, status=self.case_status, owner_ids=self.case_owners, search_string=SearchFilter.get_value( self.request, self.domain)) query_results = case_es.run_query(query) if 'hits' not in query_results: logging.error( "CaseListMixin query error: %s, urlpath: %s, params: %s, user: %s yielded a result indicating a query error: %s, results: %s" % (self.__class__.__name__, self.request.path, self.request.GET.urlencode(), self.request.couch_user.username, simplejson.dumps(query), simplejson.dumps(query_results))) raise RequestFailed return query_results
def _build_query(self): query = (case_es.CaseES() .domain(self.domain) .size(self.pagination.count) .start(self.pagination.start)) query.es_query['sort'] = self.get_sorting_block() mobile_user_and_group_slugs = self.request.GET.getlist(EMWF.slug) if self.case_filter: query = query.filter(self.case_filter) query = query.NOT(case_es.case_type("user-owner-mapping-case")) if self.case_type: query = query.case_type(self.case_type) if self.case_status: query = query.is_closed(self.case_status == 'closed') if EMWF.show_all_data(mobile_user_and_group_slugs): pass elif EMWF.show_project_data(mobile_user_and_group_slugs): # Show everything but stuff we know for sure to exclude user_types = EMWF.selected_user_types(mobile_user_and_group_slugs) ids_to_exclude = self.get_special_owner_ids( admin=HQUserType.ADMIN not in user_types, unknown=HQUserType.UNKNOWN not in user_types, demo=HQUserType.DEMO_USER not in user_types, commtrack=False, ) query = query.NOT(case_es.owner(ids_to_exclude)) else: # Only show explicit matches query = query.owner(self.case_owners) search_string = SearchFilter.get_value(self.request, self.domain) if search_string: query = query.set_query({"query_string": {"query": search_string}}) return query
def es_results(self): if not self.request.GET.has_key('patient_id'): return None full_query = { 'query': { "filtered": { "filter": { "and": [ {"term": {"domain.exact": self.request.domain}}, {"term": {"doc_type": "xforminstance"}}, { "nested": { "path": "form.case", "filter": { "or": [ { "term": { "@case_id": "%s" % self.request.GET[ 'patient_id'] } }, { "term": { "case_id": "%s" % self.request.GET['patient_id'] } } ] } } } ] }, "query": {"match_all": {}} } }, "sort": self.get_sorting_block(), "size": self.pagination.count, "from": self.pagination.start } form_name_group = self.request.GET.get('form_name_group', None) form_name_xmnls = self.request.GET.get('form_name_xmlns', None) search_string = SearchFilter.get_value(self.request, self.domain) if search_string: query_block = {"queryString": {"query": "*" + search_string + "*"}} full_query["query"]["filtered"]["query"] = query_block if form_name_group and form_name_xmnls == '': xmlns_terms = [] forms = filter(lambda obj: obj['val'] == form_name_group, SUBMISSION_SELECT_FIELDS)[0] for form in forms['next']: xmlns_terms.append(form['val']) full_query['query']['filtered']['filter']['and'].append({"terms": {"xmlns.exact": xmlns_terms}}) if form_name_xmnls: full_query['query']['filtered']['filter']['and'].append({"term": {"xmlns.exact": form_name_xmnls}}) res = self.xform_es.run_query(full_query) return res
def es_results(self): case_es = self.case_es query = self.build_query(case_type=self.case_type, filter=self.case_filter, status=self.case_status, owner_ids=self.case_owners, search_string=SearchFilter.get_value(self.request, self.domain)) return case_es.run_query(query)
def es_results(self): q = { "query": { "filtered": { "query": { "match_all": {} }, "filter": { "and": [ {"term": { "domain.exact": "succeed" }}, ] } } }, 'sort': self.get_sorting_block(), 'from': self.pagination.start if self.pagination else None, 'size': self.pagination.count if self.pagination else None, } search_string = SearchFilter.get_value(self.request, self.domain) es_filters = q["query"]["filtered"]["filter"] responsible_party = self.request_params.get('responsible_party', '') if responsible_party != '': if responsible_party == 'Care Manager': es_filters["and"].append({"term": {"task_responsible.#value": "cm"}}) else: es_filters["and"].append({"term": {"task_responsible.#value": "chw"}}) task_status = self.request_params.get('task_status', '') if task_status != '': if task_status == 'closed': es_filters["and"].append({"term": {"closed": True}}) else: es_filters["and"].append({"term": {"closed": False}}) patient_id = self.request_params.get('patient_id', '') if patient_id != '': es_filters["and"].append({"term": {"indices.referenced_id": patient_id}}) def _filter_gen(key, flist): return {"terms": { key: [item.lower() for item in flist if item] }} user = self.request.couch_user if not user.is_web_user(): owner_ids = user.get_group_ids() user_ids = [user._id] owner_filters = _filter_gen('owner_id', owner_ids) user_filters = _filter_gen('user_id', user_ids) filters = filter(None, [owner_filters, user_filters]) subterms = [] subterms.append({'or': filters}) es_filters["and"].append({'and': subterms} if subterms else {}) if self.case_type: es_filters["and"].append({"term": {"type.exact": 'task'}}) if search_string: query_block = {"queryString": {"query": "*" + search_string + "*"}} q["query"]["filtered"]["query"] = query_block sorting_block = self.get_sorting_block()[0].keys()[0] if len(self.get_sorting_block()) != 0 else None order = self.get_sorting_block()[0].values()[0] if len(self.get_sorting_block()) != 0 else None if sorting_block == 'task_risk_factor.#value': sort = { "_script": { "script": """ foreach(String key : task_risk_factor_list.keySet()) { String value = _source.task_risk_factor.get('#value'); if (value == null) { return ''; } else { return task_risk_factor_list.get(value); } } return '' """, "type": "string", "params": { "task_risk_factor_list": TASK_RISK_FACTOR }, "order": order } } q['sort'] = sort if sorting_block == 'task_activity.#value': sort = { "_script": { "script": """ foreach(String key : task_activity_list.keySet()) { String value = _source.task_activity.get('#value'); if (value == null) { return value; } else { return task_activity_list.get(value); } } return '' """, "type": "string", "params": { "task_activity_list": TASK_ACTIVITY }, "order": order } } q['sort'] = sort logging.info("ESlog: [%s.%s] ESquery: %s" % (self.__class__.__name__, self.domain, json.dumps(q))) if self.pagination: return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False, start_at=self.pagination.start) else: return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False)
def es_results(self): if not self.request.GET.has_key('patient_id'): return None full_query = { 'query': { "filtered": { "filter": { "and": [{ "term": { "domain.exact": self.request.domain } }, { "term": { "doc_type": "xforminstance" } }, { "nested": { "path": "form.case", "filter": { "or": [{ "term": { "@case_id": "%s" % self.request.GET['patient_id'] } }, { "term": { "case_id": "%s" % self.request.GET['patient_id'] } }] } } }] }, "query": { "match_all": {} } } }, "sort": self.get_sorting_block(), "size": self.pagination.count, "from": self.pagination.start } form_name_group = self.request.GET.get('form_name_group', None) form_name_xmnls = self.request.GET.get('form_name_xmlns', None) search_string = SearchFilter.get_value(self.request, self.domain) if search_string: query_block = {"queryString": {"query": "*" + search_string + "*"}} full_query["query"]["filtered"]["query"] = query_block if form_name_group and form_name_xmnls == '': xmlns_terms = [] forms = filter(lambda obj: obj['val'] == form_name_group, SUBMISSION_SELECT_FIELDS)[0] for form in forms['next']: xmlns_terms.append(form['val']) full_query['query']['filtered']['filter']['and'].append( {"terms": { "xmlns.exact": xmlns_terms }}) if form_name_xmnls: full_query['query']['filtered']['filter']['and'].append( {"term": { "xmlns.exact": form_name_xmnls }}) res = self.xform_es.run_query(full_query) return res
def es_results(self): q = { "query": { "filtered": { "query": { }, "filter": { "bool": { "must": [ {"term": {"domain.exact": self.domain}} ], "must_not": [] } } } }, 'sort': self.get_sorting_block(), 'from': self.pagination.start, 'size': self.pagination.count, } sorting_block = self.get_sorting_block()[0].keys()[0] if len(self.get_sorting_block()) != 0 else None order = self.get_sorting_block()[0].values()[0] if len(self.get_sorting_block()) != 0 else None search_string = SearchFilter.get_value(self.request, self.domain) es_filters = q["query"]["filtered"]["filter"] if sorting_block == 'last_interaction': sort = { "_script": { "script": """ last=0; break = true; for (i = _source.actions.size(); (i > 0 && break); i--){ if (inter_list.contains(_source.actions[i-1].get('xform_xmlns'))) { last = _source.actions[i-1].get('date'); break = false; } } return last; """, "type": "string", "params": { "inter_list": LAST_INTERACTION_LIST }, "order": order } } q['sort'] = sort elif sorting_block == 'target_date': sort = { "_script": { "script": """ next_visit=visits_list[0]; before_action=null; count=0; foreach(visit : visits_list) { skip = false; foreach(action : _source.actions) { if (!skip && visit.xmlns.equals(action.xform_xmlns) && !action.xform_id.equals(before_action)) { next_visit=visits_list[count+1]; before_visit=action.xform_id; skip=true; count++; } before_visit=action.xform_id; } } Calendar cal = Calendar.getInstance(); r = _source.randomization_date.get('#value').split('-'); int year = Integer.parseInt(r[0]); int month = Integer.parseInt(r[1]); int day = Integer.parseInt(r[2]); cal.set(year, month-1, day); nv=(cal.getTimeInMillis() + (next_visit.get('days') * 24 * 60 * 60 * 1000)); return Calendar.getInstance().getTimeInMillis() - nv; """, "type": "number", "params": { "visits_list": VISIT_SCHEDULE }, "order": order } } q['sort'] = sort elif sorting_block == 'visit_name': sort = { "_script": { "script": """ next_visit=visits_list[0]; before_action=null; count=0; foreach(visit : visits_list) { skip = false; foreach(action : _source.actions) { if (!skip && visit.xmlns.equals(action.xform_xmlns) && !action.xform_id.equals(before_action)) { next_visit=visits_list[count+1]; before_visit=action.xform_id; skip=true; count++; } before_visit=action.xform_id; } } return next_visit.get('visit_name'); """, "type": "string", "params": { "visits_list": VISIT_SCHEDULE }, "order": order } } q['sort'] = sort care_site = self.request_params.get('care_site', '') if care_site != '': es_filters["bool"]["must"].append({"term": {"care_site.#value": care_site}}) patient_status = self.request_params.get('patient_status', '') if patient_status != '': active_dict = {"nested": { "path": "actions", "query": { "match": { "actions.xform_xmlns": PM3}}}} if patient_status == "active": es_filters["bool"]["must_not"].append(active_dict) else: es_filters["bool"]["must"].append(active_dict) responsible_party = self.request_params.get('responsible_party', '') if responsible_party != '': users = [user.get_id for user in CommCareUser.by_domain(domain=self.domain) if 'role' in user.user_data and user.user_data['role'] == responsible_party.upper()] terms = {"terms": {"user_id": users, "minimum_should_match": 1}} es_filters["bool"]["must"].append(terms) if self.case_type: es_filters["bool"]["must"].append({"term": {"type.exact": 'participant'}}) if search_string: query_block = {"queryString": {"default_field": "full_name.#value", "query": "*" + search_string + "*"}} q["query"]["filtered"]["query"] = query_block else: q["query"]["filtered"]["query"] = {"match_all": {}} logging.info("ESlog: [%s.%s] ESquery: %s" % (self.__class__.__name__, self.domain, simplejson.dumps(q))) return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False)
def es_results(self): q = { "query": { "filtered": { "query": { "match_all": {} }, "filter": { "and": [ { "term": { "domain.exact": "succeed" } }, ] } } }, 'sort': self.get_sorting_block(), 'from': self.pagination.start if self.pagination else None, 'size': self.pagination.count if self.pagination else None, } search_string = SearchFilter.get_value(self.request, self.domain) es_filters = q["query"]["filtered"]["filter"] responsible_party = self.request_params.get('responsible_party', '') if responsible_party != '': if responsible_party == 'Care Manager': es_filters["and"].append( {"term": { "task_responsible.#value": "cm" }}) else: es_filters["and"].append( {"term": { "task_responsible.#value": "chw" }}) task_status = self.request_params.get('task_status', '') if task_status != '': if task_status == 'closed': es_filters["and"].append({"term": {"closed": True}}) else: es_filters["and"].append({"term": {"closed": False}}) patient_id = self.request_params.get('patient_id', '') if patient_id != '': es_filters["and"].append( {"term": { "indices.referenced_id": patient_id }}) def _filter_gen(key, flist): return {"terms": {key: [item.lower() for item in flist if item]}} user = self.request.couch_user if not user.is_web_user(): owner_ids = user.get_group_ids() user_ids = [user._id] owner_filters = _filter_gen('owner_id', owner_ids) user_filters = _filter_gen('user_id', user_ids) filters = filter(None, [owner_filters, user_filters]) subterms = [] subterms.append({'or': filters}) es_filters["and"].append({'and': subterms} if subterms else {}) if self.case_type: es_filters["and"].append({"term": {"type.exact": 'task'}}) if search_string: query_block = {"queryString": {"query": "*" + search_string + "*"}} q["query"]["filtered"]["query"] = query_block sorting_block = self.get_sorting_block()[0].keys()[0] if len( self.get_sorting_block()) != 0 else None order = self.get_sorting_block()[0].values()[0] if len( self.get_sorting_block()) != 0 else None if sorting_block == 'task_risk_factor.#value': sort = { "_script": { "script": """ foreach(String key : task_risk_factor_list.keySet()) { String value = _source.task_risk_factor.get('#value'); if (value == null) { return ''; } else { return task_risk_factor_list.get(value); } } return '' """, "type": "string", "params": { "task_risk_factor_list": TASK_RISK_FACTOR }, "order": order } } q['sort'] = sort if sorting_block == 'task_activity.#value': sort = { "_script": { "script": """ foreach(String key : task_activity_list.keySet()) { String value = _source.task_activity.get('#value'); if (value == null) { return value; } else { return task_activity_list.get(value); } } return '' """, "type": "string", "params": { "task_activity_list": TASK_ACTIVITY }, "order": order } } q['sort'] = sort logging.info( "ESlog: [%s.%s] ESquery: %s" % (self.__class__.__name__, self.domain, simplejson.dumps(q))) if self.pagination: return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False, start_at=self.pagination.start) else: return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False)
def es_results(self): q = { "query": { "filtered": { "query": { "match_all": {} }, "filter": { "and": [ {"term": { "domain.exact": "succeed" }}, ] } } }, 'sort': self.get_sorting_block(), 'from': self.pagination.start if self.pagination else None, 'size': self.pagination.count if self.pagination else None, } sorting_block = self.get_sorting_block()[0].keys()[0] if len(self.get_sorting_block()) != 0 else None order = self.get_sorting_block()[0].values()[0] if len(self.get_sorting_block()) != 0 else None search_string = SearchFilter.get_value(self.request, self.domain) es_filters = q["query"]["filtered"]["filter"] if sorting_block == 'last_interaction': sort = { "_script": { "script": """ last=0; break = true; for (i = _source.actions.size(); (i > 0 && break); i--){ if (inter_list.contains(_source.actions[i-1].get('xform_xmlns'))) { last = _source.actions[i-1].get('date'); break = false; } } return last; """, "type": "string", "params": { "inter_list": LAST_INTERACTION_LIST }, "order": order } } q['sort'] = sort elif sorting_block == 'target_date': sort = { "_script": { "script": """ next_visit=visits_list[0]; before_action=null; count=0; foreach(visit : visits_list) { skip = false; foreach(action : _source.actions) { if (!skip && visit.xmlns.equals(action.xform_xmlns) && !action.xform_id.equals(before_action)) { next_visit=visits_list[count+1]; before_visit=action.xform_id; skip=true; count++; } before_visit=action.xform_id; } } Calendar cal = Calendar.getInstance(); r = _source.randomization_date.get('#value').split('-'); int year = Integer.parseInt(r[0]); int month = Integer.parseInt(r[1]); int day = Integer.parseInt(r[2]); cal.set(year, month-1, day); nv=(cal.getTimeInMillis() + (next_visit.get('days') * 24 * 60 * 60 * 1000)); return Calendar.getInstance().getTimeInMillis() - nv; """, "type": "number", "params": { "visits_list": VISIT_SCHEDULE }, "order": order } } q['sort'] = sort elif sorting_block == 'visit_name': sort = { "_script": { "script": """ next_visit=visits_list[0]; before_action=null; count=0; foreach(visit : visits_list) { skip = false; foreach(action : _source.actions) { if (!skip && visit.xmlns.equals(action.xform_xmlns) && !action.xform_id.equals(before_action)) { next_visit=visits_list[count+1]; before_visit=action.xform_id; skip=true; count++; } before_visit=action.xform_id; } } return next_visit.get('visit_name'); """, "type": "string", "params": { "visits_list": VISIT_SCHEDULE }, "order": order } } q['sort'] = sort care_site = self.request_params.get('care_site_display', '') if care_site != '': query_block = {"queryString": {"default_field": "care_site_display.#value", "query": "*" + care_site + "*"}} q["query"]["filtered"]["query"] = query_block patient_status = self.request_params.get('patient_status', '') if patient_status != '': active_dict = { "nested": { "path": "actions", "filter": { "bool" : { "must_not": [], "must": [] } } } } if patient_status == 'active': active_dict['nested']['filter']['bool']['must_not'] = {"term": {"actions.xform_xmlns": PM3}} else: active_dict['nested']['filter']['bool']['must'] = {"term": {"actions.xform_xmlns": PM3}} es_filters["and"].append(active_dict) def _filter_gen(key, flist): return {"terms": { key: [item.lower() for item in flist if item] }} user = self.request.couch_user if not user.is_web_user(): owner_ids = user.get_group_ids() user_ids = [user._id] owner_filters = _filter_gen('owner_id', owner_ids) user_filters = _filter_gen('user_id', user_ids) filters = filter(None, [owner_filters, user_filters]) subterms = [] subterms.append({'or': filters}) es_filters["and"].append({'and': subterms} if subterms else {}) if self.case_type: es_filters["and"].append({"term": {"type.exact": 'participant'}}) if search_string: query_block = {"queryString": {"default_field": "full_name.#value", "query": "*" + search_string + "*"}} q["query"]["filtered"]["query"] = query_block logging.info("ESlog: [%s.%s] ESquery: %s" % (self.__class__.__name__, self.domain, simplejson.dumps(q))) if self.pagination: return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False, start_at=self.pagination.start) else: return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False)
def es_results(self): q = { "query": { "filtered": { "query": {}, "filter": { "bool": { "must": [{ "term": { "domain.exact": self.domain } }], "must_not": [] } } } }, 'sort': self.get_sorting_block(), 'from': self.pagination.start, 'size': self.pagination.count, } sorting_block = self.get_sorting_block()[0].keys()[0] if len( self.get_sorting_block()) != 0 else None order = self.get_sorting_block()[0].values()[0] if len( self.get_sorting_block()) != 0 else None search_string = SearchFilter.get_value(self.request, self.domain) es_filters = q["query"]["filtered"]["filter"] if sorting_block == 'last_interaction': sort = { "_script": { "script": """ last=0; break = true; for (i = _source.actions.size(); (i > 0 && break); i--){ if (inter_list.contains(_source.actions[i-1].get('xform_xmlns'))) { last = _source.actions[i-1].get('date'); break = false; } } return last; """, "type": "string", "params": { "inter_list": LAST_INTERACTION_LIST }, "order": order } } q['sort'] = sort elif sorting_block == 'target_date': sort = { "_script": { "script": """ next_visit=visits_list[0]; before_action=null; count=0; foreach(visit : visits_list) { skip = false; foreach(action : _source.actions) { if (!skip && visit.xmlns.equals(action.xform_xmlns) && !action.xform_id.equals(before_action)) { next_visit=visits_list[count+1]; before_visit=action.xform_id; skip=true; count++; } before_visit=action.xform_id; } } Calendar cal = Calendar.getInstance(); r = _source.randomization_date.get('#value').split('-'); int year = Integer.parseInt(r[0]); int month = Integer.parseInt(r[1]); int day = Integer.parseInt(r[2]); cal.set(year, month-1, day); nv=(cal.getTimeInMillis() + (next_visit.get('days') * 24 * 60 * 60 * 1000)); return Calendar.getInstance().getTimeInMillis() - nv; """, "type": "number", "params": { "visits_list": VISIT_SCHEDULE }, "order": order } } q['sort'] = sort elif sorting_block == 'visit_name': sort = { "_script": { "script": """ next_visit=visits_list[0]; before_action=null; count=0; foreach(visit : visits_list) { skip = false; foreach(action : _source.actions) { if (!skip && visit.xmlns.equals(action.xform_xmlns) && !action.xform_id.equals(before_action)) { next_visit=visits_list[count+1]; before_visit=action.xform_id; skip=true; count++; } before_visit=action.xform_id; } } return next_visit.get('visit_name'); """, "type": "string", "params": { "visits_list": VISIT_SCHEDULE }, "order": order } } q['sort'] = sort care_site = self.request_params.get('care_site', '') if care_site != '': es_filters["bool"]["must"].append( {"term": { "care_site.#value": care_site }}) patient_status = self.request_params.get('patient_status', '') if patient_status != '': active_dict = { "nested": { "path": "actions", "query": { "match": { "actions.xform_xmlns": PM3 } } } } if patient_status == "active": es_filters["bool"]["must_not"].append(active_dict) else: es_filters["bool"]["must"].append(active_dict) responsible_party = self.request_params.get('responsible_party', '') if responsible_party != '': users = [ user.get_id for user in CommCareUser.by_domain(domain=self.domain) if 'role' in user.user_data and user.user_data['role'] == responsible_party.upper() ] terms = {"terms": {"user_id": users}} es_filters["bool"]["must"].append(terms) else: user = self.request.couch_user if not user.is_web_user(): groups = user.get_group_ids() terms = {"terms": {"owner_id": groups}} es_filters["bool"]["must"].append(terms) if self.case_type: es_filters["bool"]["must"].append( {"term": { "type.exact": 'participant' }}) if search_string: query_block = { "queryString": { "default_field": "full_name.#value", "query": "*" + search_string + "*" } } q["query"]["filtered"]["query"] = query_block else: q["query"]["filtered"]["query"] = {"match_all": {}} logging.info( "ESlog: [%s.%s] ESquery: %s" % (self.__class__.__name__, self.domain, simplejson.dumps(q))) return es_query(q=q, es_url=REPORT_CASE_INDEX + '/_search', dict_only=False)