def get_request_query(params, scroll_id=None): queryObj = Query(params) if not scroll_id: request = {"query": {"bool": {}}} else: request = {"scroll": "1d", "scroll_id": scroll_id} if "query" in request: filter = [] # 프로젝트 시퀀스 포함 filter.append(queryObj.get_project_seq_query()) # 여러 프로젝트 seq 가 들어오더라도 모두 filter keyword가 동일하므로 첫번째 project_seq만 사용. filter.append( queryObj.get_project_filter_query( params['project_seqs'].split(",")[0])) # 대상 채널 if "channels" in params and params[ "channels"] and params["channels"] != 'all': filter.append(queryObj.get_channel_query()) # 대상 기간 if "start_date" in params and "end_date" in params: filter.append(queryObj.get_period_query(params['mode'])) request["query"]["bool"]["filter"] = filter request["query"]["bool"]["must"] = queryObj.get_total_dataset_query( params['project_seqs']) logger.debug("[get_request_query] Query >>> %s " % json.dumps(request)) return request
def get_request_query(params, scroll_id=None): queryObj = Query(params) if not scroll_id: request = {"query": {"bool": {}}} else: request = {"scroll": "1d", "scroll_id": scroll_id} if "query" in request: filter = [] # 프로젝트 시퀀스 포함 filter.append(queryObj.get_project_seq_query()) # 여러 프로젝트 seq 가 들어오더라도 모두 filter keyword가 동일하므로 첫번째 project_seq만 사용. filter.append( queryObj.get_project_filter_query( params['project_seqs'].split(",")[0])) # 대상 채널 if "channels" in params and params[ "channels"] and params["channels"] != 'all': filter.append(queryObj.get_channel_query()) # 대상 기간 if "start_date" in params and "end_date" in params: filter.append(queryObj.get_period_query(params['mode'])) request["query"]["bool"]["filter"] = filter request["query"]["bool"]["must"] = queryObj.get_total_dataset_query( params['project_seqs']) ''' request["query"]["bool"]["must"] = { "bool" : { "should" : [ { "query_string": { "fields": ["doc_title^100", "doc_content"], "query" : "신한은행", "default_operator" : "AND", "tie_breaker" : 0.0 } } ] } } ''' logger.debug("[get_request_query] Query >>> %s " % json.dumps(request)) return request