Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)