Exemplo n.º 1
0
Arquivo: utils.py Projeto: SwoJa/ruman
def get_sort(uid,fe):
    result = {}
    try:
        u_bci = es.get(index=BCI_INDEX_NAME, doc_type=BCI_INDEX_TYPE, id=uid,fields=['bci_week_ave'])['fields']['bci_week_ave'][0]
        #u_bci = es.get(index='user_portrait_1222', doc_type='user', id=uid,fields=['bci_week_ave'])['fields']['bci_week_ave'][0]
        result['in_score'] = u_bci
    except:
        result['in_score']="";
    query_body={
        'query':{
            'filtered':{
                'filter':{
                    'bool':{
                        'must':[
                            {'range':{'bci_week_ave':{'gte':u_bci}}},
                            {'term':{'topic_string':fe}}]
                    }
                }
            }
        }
    }
    result['in_top'] = es.search(index=BCI_INDEX_NAME, doc_type=BCI_INDEX_TYPE,body=query_body)['hits']['total']
    print 'essearch'
    print es.search(index=BCI_INDEX_NAME, doc_type=BCI_INDEX_TYPE,body=query_body)

    try:
        u_bci = es.get(index='bci_history', doc_type='bci', id=uid,fields=['bci_week_ave'])['fields']['bci_week_ave'][0]
        #u_bci = es.get(index='user_portrait_1222', doc_type='user', id=uid,fields=['bci_week_ave'])['fields']['bci_week_ave'][0]        
        print "trymax"
        bci_max = get_max_value(es_user_profile, "bci_history", "bci")
        print "max",bci_max
        result['all_score'] = math.log(u_bci/float(bci_max)*9+1,10)*100 
    except:
        result['all_score']=""
        result ['all_top']=""
    query_body={
        'query':{
            'filtered':{
                'filter':{
                    'bool':{
                        'must':[
                            {'range':{'bci_week_ave':{'gte':u_bci}}}]
                    }
                }
            }
        }
    }
    result['all_top'] = es.search(index='bci_history', doc_type='bci',body=query_body)['hits']['total']

    
    #result = es.search(index='user_portrait_1222', doc_type='user',body=query_body)
    # return json.dumps([result['hits']['total'],u_bci])
    return json.dumps(result)
Exemplo n.º 2
0
def get_uid(uname):
    try:
        portrait_exist_result = es_user_portrait.search(index=profile_index_name, doc_type=profile_index_type, \
            body={"query":{"bool":{"must":{"term":{"nick_name":uname}}}}})['hits']['hits'][0]['_id']
    except:
        return None
    return portrait_exist_result
Exemplo n.º 3
0
Arquivo: utils.py Projeto: SwoJa/ruman
def get_person_value(uid):
    #认证类型
    #print es_user_profile,profile_index_name,profile_index_type,uid
    try:
        value_static = es_bci_history.get(index = bci_history_index_name,doc_type = bci_history_index_type,id=uid)
        value_inf = es_user_portrait.get(index = portrait_index_name,doc_type = portrait_index_type,id=uid)
        static = es_user_profile.get(index = profile_index_name,doc_type = profile_index_type,id=uid)
    except:
        return 'no'
    fans_max = es_bci_history.search(index = bci_history_index_name,doc_type = bci_history_index_type,body={'query':{'match_all':{}},'sort':{'user_fansnum':{'order':'desc'}},'size':1})['hits']['hits'][0]['_source']['user_fansnum']
    print 'max:',fans_max
    #print static['found']
    if static['found']==False:
        return 'no'
    else:
        static = static['_source']
    #print "static",static
    try:
        ver_calue = verified_value[static['verified_type']]
    except:
        ver_calue = 0
    #账号创建时间
    times = math.ceil((time.time()-int(static['create_at']))/31536000)
    #粉丝数
    #person = es_user_profile.get(index = profile_index_name,doc_type = profile_index_type,id=uid)['_source']
    fans_value = math.log(float(value_static['_source']['user_fansnum'])/float(fans_max)*9+1,10)
    #fans_value = (math.log(static['fansnum']+1000000,100000000)-0.75)*4
    #if fans_value>1:
    #    fans_value=1.0
    influence_max = es_user_portrait.search(index = portrait_index_name,doc_type = portrait_index_type,body={'query':{'match_all':{}},'sort':{'influence':{'order':'desc'}},'size':1})['hits']['hits'][0]['_source']['influence']
    influence_value = float(value_inf['_source']['influence'])/float(influence_max)
    final= (ver_calue*0.1+times*0.05+fans_value+influence_value*1.2)*30
    print ver_calue,times,fans_value,influence_value
    return final
Exemplo n.º 4
0
Arquivo: utils.py Projeto: SwoJa/ruman
def get_uid(uname):
    try:
        portrait_exist_result = es_user_portrait.search(index=profile_index_name, doc_type=profile_index_type, \
            body={"query":{"bool":{"must":{"term":{"nick_name":uname}}}}})['hits']['hits'][0]['_id']
    except:
        return None
    return portrait_exist_result
Exemplo n.º 5
0
def search_portrait(condition_num, query, sort, size):
    user_result = []
    index_name = portrait_index_name
    index_type = portrait_index_type
    if condition_num > 0:
        #try:
        result = es_user_portrait.search(index=index_name, doc_type=index_type, \
                    body={'query':{'bool':{'must':query}}, 'sort':[{sort:{'order':'desc'}}], 'size':size})['hits']['hits']
        #except Exception,e:
        #    raise e
        ## print 'result:', result
    else:
        try:
            result = es_user_portrait.search(index=index_name, doc_type=index_type, \
                    body={'query':{'match_all':{}}, 'sort':[{sort:{"order":"desc"}}], 'size':size})['hits']['hits']
        except Exception, e:
            raise e
Exemplo n.º 6
0
def search_portrait(condition_num, query, sort, size):
    user_result = []
    index_name = portrait_index_name
    index_type = portrait_index_type
    if condition_num > 0:
        #try:
        result = es_user_portrait.search(index=index_name, doc_type=index_type, \
                    body={'query':{'bool':{'must':query}}, 'sort':[{sort:{'order':'desc'}}], 'size':size})['hits']['hits']
        #except Exception,e:
        #    raise e
        #print 'result:', result
    else:
        try:
            result = es_user_portrait.search(index=index_name, doc_type=index_type, \
                    body={'query':{'match_all':{}}, 'sort':[{sort:{"order":"desc"}}], 'size':size})['hits']['hits']
        except Exception, e:
            raise e
Exemplo n.º 7
0
def ajax_show_task():
    # show all working task
    # "0": unfinish working task
    # "1": finish working task
    status = request.args.get("finish", "01")
    user = request.args.get('user', '')
    length = len(status)
    query_body = {
        "query": {
            "filtered": {
                "filter": {
                    "bool": {
                        "must": [{
                            "term": {
                                "create_by": user
                            }
                        }]
                    }
                }
            }
        },
        "sort": {
            "create_at": {
                "order": "desc"
            }
        },
        "size": 10000
    }
    #if length == 2:
    #    category_list = [status[0], status[1]]
    #    query_body['query']['filtered']['filter']["bool"]["must"].append({"term":{"finish": category_list}})
    if length == 1:
        query_body['query']['filtered']['filter']['bool']['must'].append(
            {"term": {
                "finish": status
            }})
    #else:
    #    print "error"

    try:
        search_results = es.search(index=index_manage_sensing_task,
                                   doc_type=task_doc_type,
                                   body=query_body)['hits']['hits']
    except:
        search_results = []
    results = []
    if search_results:
        for item in search_results:
            item = item['_source']
            history_status = json.loads(item['history_status'])
            if history_status:
                item['history_status'] = sorted(history_status,
                                                key=lambda x: x,
                                                reverse=True)
            else:
                item['history_status'] = []
            results.append(item)
    return json.dumps(results)
Exemplo n.º 8
0
Arquivo: views.py Projeto: SwoJa/ruman
def get_top_influence(key):
    query_body = {
        "query":{
            "match_all": {}
        },
        "sort":{key:{"order":"desc"}},
        "size": 1
    }

    search_result = es.search(index=portrait_index_name, doc_type=portrait_index_type, body=query_body)['hits']['hits']
    if search_result:
        result = search_result[0]['_source'][key]

    return result
Exemplo n.º 9
0
def get_top_influence(key):
    query_body = {
        "query":{
            "match_all": {}
        },
        "sort":{key:{"order":"desc"}},
        "size": 1
    }

    search_result = es.search(index=portrait_index_name, doc_type=portrait_index_type, body=query_body)['hits']['hits']
    if search_result:
        result = search_result[0]['_source'][key]

    return result
Exemplo n.º 10
0
Arquivo: views.py Projeto: SwoJa/ruman
def ajax_get_group_list():
    user = request.args.get('user', '')
    # get all group list from group manage
    results = [] #
    query_body = {
        "query":{
            "filtered":{
                "filter":{
                    "bool":{
                        "should":[
                            {"term": {"task_type": "analysis"}},
                            {"bool":{
                                "must":[
                                    {"term": {"task_type": "detect"}},
                                    {"term": {"detect_process":100}}
                                ]
                            }}
                        ],
                        "must":{"term": {"submit_user": user}}
                    }
                }
            }
        },
        "sort": {"submit_date": {"order": "desc"}},
        "size": 10000
    }

    search_results = es.search(index=index_group_manage, doc_type=doc_type_group, body=query_body, timeout=600)['hits']['hits']
    if search_results:
        for item in search_results:
            item = item['_source']
            temp = []
            temp.append(item['task_name'])
            temp.append(item['submit_user'])
            temp.append(item['submit_date'])
            temp.append(0)
            temp.append(item.get('state', ""))
            try:
                temp.append(json.loads(item['uid_list']))
                count = len(json.loads(item['uid_list']))
                temp[3] = count
            except:
                temp.append(item['uid_list'])
                temp[3] = len(item['uid_list'])
            results.append(temp)

    return json.dumps(results)
Exemplo n.º 11
0
Arquivo: utils.py Projeto: SwoJa/ruman
def get_evaluate_max():
    max_result = {}
    evaluate_index = ['importance', 'influence', 'activeness', 'sensitive']
    for evaluate in evaluate_index:
        query_body = {
            'query':{
                'match_all':{}
                },
            'size': 1,
            'sort': [{evaluate: {'order': 'desc'}}]
            }
        try:
            result = es_user_portrait.search(index=portrait_index_name, doc_type=portrait_index_type, body=query_body)['hits']['hits']
        except Exception, e:
            raise e
        max_evaluate = result[0]['_source'][evaluate]
        max_result[evaluate] = max_evaluate
Exemplo n.º 12
0
def filter_in_uname(input_dict):
    input_uname = input_dict.keys()
    all_count = len(input_uname)
    iter_count = 0
    in_portrait_result = []
    while iter_count < all_count:
        iter_user_list = input_uname[iter_count: iter_count+FILTER_ITER_COUNT]
        try:
            portrait_result = es_user_portrait.search(index=portrait_index_name, doc_type=portrait_index_type,\
                    body={'query':{'terms': {'uname': iter_user_list}}}, _source=False, fields=['photo_url', 'uname'])['hits']['hits']
        except:
            portrait_result = []
        if portrait_result:
            iter_in_portrait = [[item['_id'], item['uname'][0], item['photo_url'][0], input_uname[item['uname']]] for item in portrait_result]
        in_portrait_result.extend(iter_in_portrait)
        iter_count += FILTER_ITER_COUNT
    return in_portrait_result
Exemplo n.º 13
0
Arquivo: views.py Projeto: SwoJa/ruman
def ajax_show_task():
    # show all working task
    # "0": unfinish working task
    # "1": finish working task
    status = request.args.get("finish", "01")
    user = request.args.get('user', '')
    length = len(status)
    query_body = {
        "query":{
            "filtered":{
                "filter":{
                    "bool":{
                        "must":[
                            {"term":{"create_by": user}}
                        ]
                    }
                }
            }
        },
        "sort": {"create_at": {"order": "desc"}},
        "size": 10000
    }
    #if length == 2:
    #    category_list = [status[0], status[1]]
    #    query_body['query']['filtered']['filter']["bool"]["must"].append({"term":{"finish": category_list}})
    if length == 1:
        query_body['query']['filtered']['filter']['bool']['must'].append({"term":{"finish": status}})
    #else:
    #    print "error"

    try:
        search_results = es.search(index=index_manage_sensing_task, doc_type=task_doc_type, body=query_body)['hits']['hits']
    except:
        search_results = []
    results = []
    if search_results:
        for item in search_results:
            item = item['_source']
            history_status = json.loads(item['history_status'])
            if history_status:
                item['history_status'] = sorted(history_status, key=lambda x:x, reverse=True)
            else:
                item['history_status'] = []
            results.append(item)
    return json.dumps(results)
Exemplo n.º 14
0
Arquivo: utils.py Projeto: SwoJa/ruman
def get_max_value(es, index_name, _type):
    query_body = {
        "query":{
            "match_all": {}
        },
        "sort":{'bci_week_ave':{"order":"desc"}},
        "size": 1
    }

    max_value = 1
    try:
        result = es.search(index=index_name, doc_type=_type, body=query_body)['hits']['hits']
    except:
        result = []
    if result:
        max_value = result[0]['_source']['bci_week_ave']

    return max_value
Exemplo n.º 15
0
def get_top_all_influence(key, ts):
    query_body = {
        "query":{
            "match_all": {}
        },
        "sort":{key:{"order":"desc"}},
        "size": 1
    }

    index_name = "bci_" + ts2datetime(ts).replace('-','')
    if not es.indices.exists(index=index_name):
        index_name = "bci_" + ts2datetime(ts-DAY).replace('-','')
    exist_es = es.indices.exists(index=index_name)
    if exist_es:
         search_result = es.search(index=index_name, doc_type="bci", body=query_body)['hits']['hits']
    else:
         search_result = {}
    if search_result:
        result = search_result[0]['_source'][key]
    else:
        result = 2000
    return result
Exemplo n.º 16
0
def get_evaluate_max():
    max_result = {}
    evaluate_index = ['importance', 'influence', 'activeness', 'sensitive']
    for evaluate in evaluate_index:
        query_body = {
            'query': {
                'match_all': {}
            },
            'size': 1,
            'sort': [{
                evaluate: {
                    'order': 'desc'
                }
            }]
        }
        try:
            result = es_user_portrait.search(index=portrait_index_name,
                                             doc_type=portrait_index_type,
                                             body=query_body)['hits']['hits']
        except Exception, e:
            raise e
        max_evaluate = result[0]['_source'][evaluate]
        max_result[evaluate] = max_evaluate
Exemplo n.º 17
0
def get_max_value(es, index_name, _type):
    query_body = {
        "query": {
            "match_all": {}
        },
        "sort": {
            'bci_week_ave': {
                "order": "desc"
            }
        },
        "size": 1
    }

    max_value = 1
    try:
        result = es.search(index=index_name, doc_type=_type,
                           body=query_body)['hits']['hits']
    except:
        result = []
    if result:
        max_value = result[0]['_source']['bci_week_ave']

    return max_value
Exemplo n.º 18
0
def get_social_topic(uid_set):
    results = {}
    query_body = {
        'query':{
            'filtered':{
                'filter':{
                    'terms':{
                        'uid': list(uid_set)
                        }
                    }
                }
            },
        'aggs':{
            'all_topic':{
                'terms':{'field': 'topic_string'}
                }
            }
        }
    search_result = es_user_portrait.search(index=portrait_index_name, doc_type=portrait_index_type,\
            body=query_body)['aggregations']['all_topic']['buckets']
    for item in search_result:
        results[item['key']] = item['doc_count']

    return results
Exemplo n.º 19
0
def get_sort(uid, fe):
    result = {}
    try:
        u_bci = es.get(index=BCI_INDEX_NAME,
                       doc_type=BCI_INDEX_TYPE,
                       id=uid,
                       fields=['bci_week_ave'])['fields']['bci_week_ave'][0]
        #u_bci = es.get(index='user_portrait_1222', doc_type='user', id=uid,fields=['bci_week_ave'])['fields']['bci_week_ave'][0]
        result['in_score'] = u_bci
    except:
        result['in_score'] = ""
    query_body = {
        'query': {
            'filtered': {
                'filter': {
                    'bool': {
                        'must': [{
                            'range': {
                                'bci_week_ave': {
                                    'gte': u_bci
                                }
                            }
                        }, {
                            'term': {
                                'topic_string': fe
                            }
                        }]
                    }
                }
            }
        }
    }
    result['in_top'] = es.search(index=BCI_INDEX_NAME,
                                 doc_type=BCI_INDEX_TYPE,
                                 body=query_body)['hits']['total']
    # print 'essearch'
    # print es.search(index=BCI_INDEX_NAME, doc_type=BCI_INDEX_TYPE,body=query_body)

    try:
        u_bci = es.get(index='bci_history',
                       doc_type='bci',
                       id=uid,
                       fields=['bci_week_ave'])['fields']['bci_week_ave'][0]
        #u_bci = es.get(index='user_portrait_1222', doc_type='user', id=uid,fields=['bci_week_ave'])['fields']['bci_week_ave'][0]
        # print "trymax"
        bci_max = get_max_value(es_user_profile, "bci_history", "bci")
        # print "max",bci_max
        result['all_score'] = math.log(u_bci / float(bci_max) * 9 + 1,
                                       10) * 100
    except:
        result['all_score'] = ""
        result['all_top'] = ""
    query_body = {
        'query': {
            'filtered': {
                'filter': {
                    'bool': {
                        'must': [{
                            'range': {
                                'bci_week_ave': {
                                    'gte': u_bci
                                }
                            }
                        }]
                    }
                }
            }
        }
    }
    result['all_top'] = es.search(index='bci_history',
                                  doc_type='bci',
                                  body=query_body)['hits']['total']

    #result = es.search(index='user_portrait_1222', doc_type='user',body=query_body)
    # return json.dumps([result['hits']['total'],u_bci])
    return json.dumps(result)
Exemplo n.º 20
0
Arquivo: utils.py Projeto: SwoJa/ruman
def search_task(task_name, submit_date, state, status, submit_user):
    results = []
    query = []
    condition_num = 0
    if task_name:
        task_name_list = task_name.split(' ')
        for item in task_name_list:
            query.append({'wildcard':{'task_name': '*' + item + '*'}})
            condition_num += 1
    if submit_date:
        submit_date_ts = datetime2ts(submit_date)
        submit_date_start = submit_date_ts
        submit_date_end = submit_date_ts + DAY
        query.append({'range':{'submit_date': {'gte': submit_date_start, 'lt': submit_date_end}}})
        condition_num += 1
    if state:
        state_list = state.split(' ')
        for item in state_list:
            query.append({'wildcard':{'state': '*' + item + '*'}})
            condition_num += 1
    if status:
        query.append({'match':{'status': status}})
        condition_num += 1
    if submit_user:
        query.append({'term':{'submit_user': submit_user}})
        condition_num += 1
    print es_group_result,group_index_name,group_index_type
    if condition_num > 0:
        query.append({'term':{'task_type': 'analysis'}})
        try:
            source = es_group_result.search(
                    index = group_index_name,
                    doc_type = group_index_type,
                    body = {
                        'query':{
                            'bool':{
                                'must':query
                                }
                            },
                        'sort': [{'count':{'order': 'desc'}}],
                        'size': MAX_VALUE
                        }
                    )
        except Exception as e:
            raise e
    else:
        query.append({'term':{'task_type': 'analysis'}})
        source = es.search(
                index = group_index_name,
                doc_type = group_index_type,
                body = {
                    'query':{'bool':{
                        'must':query
                        }
                        },
                    'sort': [{'count': {'order': 'desc'}}],
                    'size': MAX_VALUE
                    }
                )

    try:
        task_dict_list = source['hits']['hits']
    except:
        return None
    result = []
    for task_dict in task_dict_list:
        try:
            state = task_dict['_source']['state']
        except:
            state = ''
        try:
            status = task_dict['_source']['status']
        except:
            status = 0
        #result.append([task_dict['_source']['task_name'], task_dict['_source']['submit_date'], task_dict['_source']['count'], state, status])
        result.append({'task_name':task_dict['_source']['task_name'],'submit_date':ts2date(task_dict['_source']['submit_date']), 'group_count':task_dict['_source']['count'], 'status':status})
    
    return result
Exemplo n.º 21
0
def get_person_value(uid):
    #认证类型
    #print es_user_profile,profile_index_name,profile_index_type,uid
    try:
        value_static = es_bci_history.get(index=bci_history_index_name,
                                          doc_type=bci_history_index_type,
                                          id=uid)
        value_inf = es_user_portrait.get(index=portrait_index_name,
                                         doc_type=portrait_index_type,
                                         id=uid)
        static = es_user_profile.get(index=profile_index_name,
                                     doc_type=profile_index_type,
                                     id=uid)
    except:
        return 'no'
    fans_max = es_bci_history.search(
        index=bci_history_index_name,
        doc_type=bci_history_index_type,
        body={
            'query': {
                'match_all': {}
            },
            'sort': {
                'user_fansnum': {
                    'order': 'desc'
                }
            },
            'size': 1
        })['hits']['hits'][0]['_source']['user_fansnum']
    print 'max:', fans_max
    #print static['found']
    if static['found'] == False:
        return 'no'
    else:
        static = static['_source']
    #print "static",static
    try:
        ver_calue = verified_value[static['verified_type']]
    except:
        ver_calue = 0
    #账号创建时间
    times = math.ceil((time.time() - int(static['create_at'])) / 31536000)
    #粉丝数
    #person = es_user_profile.get(index = profile_index_name,doc_type = profile_index_type,id=uid)['_source']
    fans_value = math.log(
        float(value_static['_source']['user_fansnum']) / float(fans_max) * 9 +
        1, 10)
    #fans_value = (math.log(static['fansnum']+1000000,100000000)-0.75)*4
    #if fans_value>1:
    #    fans_value=1.0
    influence_max = es_user_portrait.search(
        index=portrait_index_name,
        doc_type=portrait_index_type,
        body={
            'query': {
                'match_all': {}
            },
            'sort': {
                'influence': {
                    'order': 'desc'
                }
            },
            'size': 1
        })['hits']['hits'][0]['_source']['influence']
    influence_value = float(
        value_inf['_source']['influence']) / float(influence_max)
    final = (ver_calue * 0.1 + times * 0.05 + fans_value +
             influence_value * 1.2) * 30
    print ver_calue, times, fans_value, influence_value
    return final
Exemplo n.º 22
0
def ajax_get_group_list():
    user = request.args.get('user', '')
    # get all group list from group manage
    results = []  #
    query_body = {
        "query": {
            "filtered": {
                "filter": {
                    "bool": {
                        "should": [{
                            "term": {
                                "task_type": "analysis"
                            }
                        }, {
                            "bool": {
                                "must": [{
                                    "term": {
                                        "task_type": "detect"
                                    }
                                }, {
                                    "term": {
                                        "detect_process": 100
                                    }
                                }]
                            }
                        }],
                        "must": {
                            "term": {
                                "submit_user": user
                            }
                        }
                    }
                }
            }
        },
        "sort": {
            "submit_date": {
                "order": "desc"
            }
        },
        "size": 10000
    }

    search_results = es.search(index=index_group_manage,
                               doc_type=doc_type_group,
                               body=query_body,
                               timeout=600)['hits']['hits']
    if search_results:
        for item in search_results:
            item = item['_source']
            temp = []
            temp.append(item['task_name'])
            temp.append(item['submit_user'])
            temp.append(item['submit_date'])
            temp.append(0)
            temp.append(item.get('state', ""))
            try:
                temp.append(json.loads(item['uid_list']))
                count = len(json.loads(item['uid_list']))
                temp[3] = count
            except:
                temp.append(item['uid_list'])
                temp[3] = len(item['uid_list'])
            results.append(temp)

    return json.dumps(results)
Exemplo n.º 23
0
def conclusion_on_influence(uid):
    # test
    index_name = copy_portrait_index_name
    index_type = copy_portrait_index_type
    total_number = es.count(index=copy_portrait_index_name, doc_type=copy_portrait_index_type)["count"]

    try:
        influ_result = es.get(index=index_name, doc_type=index_type, id=uid)['_source']
    except:
        influ_result = {}
        result = [0, 0, 0, 0, 0, 0, total_number] # aver_activeness, sorted, aver_influence, sorted
        return result

    aver_activeness = influ_result.get("aver_activeness", 0)
    aver_influence = influ_result.get("aver_influence", 0)
    aver_importance = influ_result.get('aver_importance', 0)
    influence_query_body = {
        "query":{
            "match_all": {}
        },
        "sort": {"aver_influence": {"order": "desc"}},
        "size": 1
    }
    top_influence = es.search(index=copy_portrait_index_name, doc_type=copy_portrait_index_type, body=influence_query_body)['hits']['hits'][0]['sort'][0]

    importance_query_body = {
        "query":{
            "match_all": {}
        },
        "sort": {"aver_importance": {"order": "desc"}},
        "size": 1
    }
    top_importance = es.search(index=copy_portrait_index_name, doc_type=copy_portrait_index_type, body=importance_query_body)['hits']['hits'][0]['sort'][0]

    activeness_query_body = {
        "query":{
            "match_all": {}
        },
        "sort": {"aver_activeness": {"order": "desc"}},
        "size": 1
    }
    top_activeness = es.search(index=copy_portrait_index_name, doc_type=copy_portrait_index_type, body=activeness_query_body)['hits']['hits'][0]['sort'][0]

    influence_query_body = {
        "query": {
            "filtered":{
                "filter": {
                    "range": {
                        "aver_influence": {
                            "gt": aver_influence
                        }
                    }
                }
            }
        }
    }

    activeness_query_body = {
        "query": {
            "filtered":{
                "filter": {
                    "range": {
                        "aver_activeness": {
                            "gt": aver_activeness
                        }
                    }
                }
            }
        }
    }

    importance_query_body = {
        "query": {
            "filtered":{
                "filter": {
                    "range": {
                        "aver_importance": {
                            "gt": aver_importance
                        }
                    }
                }
            }
        }
    }

    influence_count = es.count(index=copy_portrait_index_name, doc_type=copy_portrait_index_type, body=influence_query_body)['count']
    activeness_count = es.count(index=copy_portrait_index_name, doc_type=copy_portrait_index_type, body=activeness_query_body)['count']
    importance_count = es.count(index=copy_portrait_index_name, doc_type=copy_portrait_index_type, body=importance_query_body)['count']

    result = [int(aver_activeness*100.0/top_activeness), activeness_count, int(aver_influence*100.0/top_influence), influence_count, int(aver_importance*100.0/top_importance), importance_count, total_number]
    return result
Exemplo n.º 24
0
def conclusion_on_influence(uid):
    # test
    index_name = copy_portrait_index_name
    index_type = copy_portrait_index_type
    total_number = es.count(index=copy_portrait_index_name,
                            doc_type=copy_portrait_index_type)["count"]

    try:
        influ_result = es.get(index=index_name, doc_type=index_type,
                              id=uid)['_source']
    except:
        influ_result = {}
        result = [0, 0, 0, 0, 0, 0, total_number
                  ]  # aver_activeness, sorted, aver_influence, sorted
        return result

    aver_activeness = influ_result.get("aver_activeness", 0)
    aver_influence = influ_result.get("aver_influence", 0)
    aver_importance = influ_result.get('aver_importance', 0)
    influence_query_body = {
        "query": {
            "match_all": {}
        },
        "sort": {
            "aver_influence": {
                "order": "desc"
            }
        },
        "size": 1
    }
    top_influence = es.search(
        index=copy_portrait_index_name,
        doc_type=copy_portrait_index_type,
        body=influence_query_body)['hits']['hits'][0]['sort'][0]

    importance_query_body = {
        "query": {
            "match_all": {}
        },
        "sort": {
            "aver_importance": {
                "order": "desc"
            }
        },
        "size": 1
    }
    top_importance = es.search(
        index=copy_portrait_index_name,
        doc_type=copy_portrait_index_type,
        body=importance_query_body)['hits']['hits'][0]['sort'][0]

    activeness_query_body = {
        "query": {
            "match_all": {}
        },
        "sort": {
            "aver_activeness": {
                "order": "desc"
            }
        },
        "size": 1
    }
    top_activeness = es.search(
        index=copy_portrait_index_name,
        doc_type=copy_portrait_index_type,
        body=activeness_query_body)['hits']['hits'][0]['sort'][0]

    influence_query_body = {
        "query": {
            "filtered": {
                "filter": {
                    "range": {
                        "aver_influence": {
                            "gt": aver_influence
                        }
                    }
                }
            }
        }
    }

    activeness_query_body = {
        "query": {
            "filtered": {
                "filter": {
                    "range": {
                        "aver_activeness": {
                            "gt": aver_activeness
                        }
                    }
                }
            }
        }
    }

    importance_query_body = {
        "query": {
            "filtered": {
                "filter": {
                    "range": {
                        "aver_importance": {
                            "gt": aver_importance
                        }
                    }
                }
            }
        }
    }

    influence_count = es.count(index=copy_portrait_index_name,
                               doc_type=copy_portrait_index_type,
                               body=influence_query_body)['count']
    activeness_count = es.count(index=copy_portrait_index_name,
                                doc_type=copy_portrait_index_type,
                                body=activeness_query_body)['count']
    importance_count = es.count(index=copy_portrait_index_name,
                                doc_type=copy_portrait_index_type,
                                body=importance_query_body)['count']

    result = [
        int(aver_activeness * 100.0 / top_activeness), activeness_count,
        int(aver_influence * 100.0 / top_influence), influence_count,
        int(aver_importance * 100.0 / top_importance), importance_count,
        total_number
    ]
    return result
Exemplo n.º 25
0
def search_task(task_name, submit_date, state, status, submit_user):
    results = []
    query = []
    condition_num = 0
    if task_name:
        task_name_list = task_name.split(' ')
        for item in task_name_list:
            query.append({'wildcard': {'task_name': '*' + item + '*'}})
            condition_num += 1
    if submit_date:
        submit_date_ts = datetime2ts(submit_date)
        submit_date_start = submit_date_ts
        submit_date_end = submit_date_ts + DAY
        query.append({
            'range': {
                'submit_date': {
                    'gte': submit_date_start,
                    'lt': submit_date_end
                }
            }
        })
        condition_num += 1
    if state:
        state_list = state.split(' ')
        for item in state_list:
            query.append({'wildcard': {'state': '*' + item + '*'}})
            condition_num += 1
    if status:
        query.append({'match': {'status': status}})
        condition_num += 1
    if submit_user:
        query.append({'term': {'submit_user': submit_user}})
        condition_num += 1
    if condition_num > 0:
        query.append({'term': {'task_type': 'analysis'}})
        try:
            source = es_group_result.search(index=group_index_name,
                                            doc_type=group_index_type,
                                            body={
                                                'query': {
                                                    'bool': {
                                                        'must': query
                                                    }
                                                },
                                                'sort': [{
                                                    'count': {
                                                        'order': 'desc'
                                                    }
                                                }],
                                                'size':
                                                MAX_VALUE
                                            })
        except Exception as e:
            raise e
    else:
        query.append({'term': {'task_type': 'analysis'}})
        source = es.search(index=group_index_name,
                           doc_type=group_index_type,
                           body={
                               'query': {
                                   'bool': {
                                       'must': query
                                   }
                               },
                               'sort': [{
                                   'count': {
                                       'order': 'desc'
                                   }
                               }],
                               'size': MAX_VALUE
                           })

    try:
        task_dict_list = source['hits']['hits']
    except:
        return None
    result = []
    for task_dict in task_dict_list:
        try:
            state = task_dict['_source']['state']
        except:
            state = ''
        try:
            status = task_dict['_source']['status']
        except:
            status = 0
        result.append([
            task_dict['_source']['task_name'],
            task_dict['_source']['submit_date'], task_dict['_source']['count'],
            state, status
        ])

    return result