def ajax_portrait_search(): stype = request.args.get('stype', '') result = {} query_data = {} query = [] query_list = [] condition_num = 0 submit_user = request.args.get('submit_user', 'admin') if stype == '1': fuzz_item = ['uid', 'uname'] item_data = request.args.get('term', '') for item in fuzz_item: if item_data: query_list.append({'wildcard':{item:'*'+item_data+'*'}}) condition_num += 1 query.append({'bool':{'should':query_list}}) else: query_list = [] fuzz_item = ['location', 'activity_geo', 'keywords_string', 'hashtag'] multi_item = ['character_sentiment','character_text','domain','topic_string'] simple_fuzz_item = ['uid', 'uname'] item_data = request.args.get('term', '') for item in simple_fuzz_item: query_list.append({'wildcard':{item: '*'+item_data+'*'}}) condition_num += 1 query.append({'bool': {'should': query_list}}) for item in fuzz_item: item_data = request.args.get(item, '') if item_data: query.append({'wildcard':{item:'*'+item_data+'*'}}) condition_num += 1 # custom_attribute tag_items = request.args.get('tag', '') if tag_items != '': tag_item_list = tag_items.split(',') for tag_item in tag_item_list: attribute_name_value = tag_item.split(':') attribute_name = attribute_name_value[0] attribute_value = attribute_name_value[1] field_key = submit_user + '-tag' if attribute_name and attribute_value: query.append({'term':{field_key: attribute_name + '-' + attribute_value}}) condition_num += 1 for item in multi_item: nest_body = {} nest_body_list = [] item_data = request.args.get(item, '') if item_data: term_list = item_data.split(',') for term in term_list: nest_body_list.append({'wildcard':{item:'*'+term+'*'}}) condition_num += 1 query.append({'bool':{'should':nest_body_list}}) size = 1000 sort = '_score' result = search_portrait(condition_num, query, sort, size) return json.dumps(result)
def ajax_portrait_search(): stype = request.args.get("stype", "") result = {} query_data = {} query = [] query_list = [] condition_num = 0 if stype == "1": fuzz_item = ["uid", "uname"] item_data = request.args.get("term", "") for item in fuzz_item: if item_data: query_list.append({"wildcard": {item: "*" + item_data + "*"}}) condition_num += 1 query.append({"bool": {"should": query_list}}) else: fuzz_item = ["uid", "uname", "location", "activity_geo", "keywords_string", "hashtag"] multi_item = ["character_sentiment", "character_text", "domain", "topic_string"] for item in fuzz_item: item_data = request.args.get(item, "") if item_data: query.append({"wildcard": {item: "*" + item_data + "*"}}) condition_num += 1 # custom_attribute tag_items = request.args.get("tag", "") if tag_items != "": tag_item_list = tag_items.split(",") for tag_item in tag_item_list: attribute_name_value = tag_item.split(":") attribute_name = attribute_name_value[0] attribute_value = attribute_name_value[1] if attribute_name and attribute_value: query.append({"wildcard": {attribute_name: "*" + attribute_value + "*"}}) condition_num += 1 for item in multi_item: nest_body = {} nest_body_list = [] item_data = request.args.get(item, "") if item_data: term_list = item_data.split(",") for term in term_list: nest_body_list.append({"wildcard": {item: "*" + term + "*"}}) condition_num += 1 query.append({"bool": {"should": nest_body_list}}) size = 1000 sort = "_score" result = search_portrait(condition_num, query, sort, size) return json.dumps(result)
def ajax_portrait_search(): stype = request.args.get("stype", "") result = {} query_data = {} query = [] query_list = [] condition_num = 0 if stype == "1": fuzz_item = ["uid", "uname"] item_data = request.args.get("term", "") # if item_data: for item in fuzz_item: # item_data = request.args.get(item, '') if item_data: query_list.append({"wildcard": {item: "*" + item_data + "*"}}) condition_num += 1 query.append({"bool": {"should": query_list}}) else: fuzz_item = ["uid", "uname", "location", "activity_geo", "keywords", "hashtag"] select_item = ["gender", "verified", "psycho_feature", "psycho_status"] range_item = ["fansnum", "statusnum", "friendsnum", "importance", "activeness", "influence"] multi_item = ["topic", "domain"] for item in fuzz_item: item_data = request.args.get(item, "") if item_data: if item == "keywords": item = "keywords_string" # print 'item_data:', item_data, type(item_data) query.append({"wildcard": {item: "*" + item_data + "*"}}) condition_num += 1 for item in select_item: item_data = request.args.get(item, "") if item_data: query.append({"match": {item: item_data}}) condition_num += 1 """ for item in range_item: item_data_low = request.args.get(item+'low', '') item_data_up = request.args.get(item+'up', '') if not item_data_low: item_data_low = 0 else: item_data_low = float(item_data_low) if not item_data_up: item_data_up = 10000000 else: item_data_up = float(item_data_up) query.append({'range':{item:{'from':item_data_low, 'to':item_data_up}}}) condition_num += 1 """ for item in multi_item: nest_body = {} nest_body_list = [] item_data = request.args.get(item, "") if item_data: term_list = item_data.split(",") for term in term_list: nest_body_list.append({"match": {item: term}}) condition_num += 1 query.append({"bool": {"should": nest_body_list}}) # size = request.args.get('size', 1000) size = 1000 sort = "_score" # sort = request.args.get('sort', 'influence') print "condition_num, query:", condition_num, query result = search_portrait(condition_num, query, sort, size) return json.dumps(result)
def ajax_portrait_search(): stype = request.args.get('stype', '') result = {} query_data = {} query = [] query_list = [] condition_num = 0 submit_user = request.args.get('submit_user', 'admin') if stype == '1': fuzz_item = ['uid', 'uname'] item_data = request.args.get('term', '') for item in fuzz_item: if item_data: query_list.append({'wildcard': {item: '*' + item_data + '*'}}) condition_num += 1 query.append({'bool': {'should': query_list}}) else: query_list = [] fuzz_item = ['location', 'activity_geo', 'keywords_string', 'hashtag'] multi_item = [ 'character_sentiment', 'character_text', 'domain', 'topic_string' ] simple_fuzz_item = ['uid', 'uname'] item_data = request.args.get('term', '') for item in simple_fuzz_item: query_list.append({'wildcard': {item: '*' + item_data + '*'}}) condition_num += 1 query.append({'bool': {'should': query_list}}) for item in fuzz_item: item_data = request.args.get(item, '') if item_data: query.append({'wildcard': {item: '*' + item_data + '*'}}) condition_num += 1 # custom_attribute tag_items = request.args.get('tag', '') if tag_items != '': tag_item_list = tag_items.split(',') for tag_item in tag_item_list: attribute_name_value = tag_item.split(':') attribute_name = attribute_name_value[0] attribute_value = attribute_name_value[1] field_key = submit_user + '-tag' if attribute_name and attribute_value: query.append({ 'term': { field_key: attribute_name + '-' + attribute_value } }) condition_num += 1 for item in multi_item: nest_body = {} nest_body_list = [] item_data = request.args.get(item, '') if item_data: term_list = item_data.split(',') for term in term_list: nest_body_list.append( {'wildcard': { item: '*' + term + '*' }}) condition_num += 1 query.append({'bool': {'should': nest_body_list}}) size = 1000 sort = '_score' result = search_portrait(condition_num, query, sort, size) return json.dumps(result)