Commit 30991868 authored by 段英荣's avatar 段英荣

Merge branch 'test' into 'master'

Test

See merge request !228
parents cad53f5b 099832ab
......@@ -24,5 +24,29 @@
<option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
</formatting-settings>
</DBN-SQL>
<DBN-PSQL>
<case-options enabled="false">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false" />
</DBN-PSQL>
<DBN-SQL>
<case-options enabled="false">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false">
<option name="STATEMENT_SPACING" value="one_line" />
<option name="CLAUSE_CHOP_DOWN" value="chop_down_if_statement_long" />
<option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
</formatting-settings>
</DBN-SQL>
</code_scheme>
</component>
\ No newline at end of file
......@@ -9,7 +9,7 @@ from libs.es import ESPerform
class GroupUtils(object):
@classmethod
def get_group_query_result(cls,query,offset,size):
def get_group_query_result(cls, query, offset, size):
try:
q = dict()
......@@ -38,49 +38,84 @@ class GroupUtils(object):
}
}
q["_source"] = {
"includes":["id"]
"includes": ["id"]
}
return ESPerform.get_search_results(ESPerform.get_cli(), "group", q, offset, size)
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return {"total_count":0, "hits":[]}
return {"total_count": 0, "hits": []}
@classmethod
def get_hot_pictorial_recommend_result_list(cls,offset,size,es_cli_obj=None):
def get_hot_pictorial_recommend_result_list(cls, offset, size, es_cli_obj=None):
try:
if not es_cli_obj:
es_cli_obj = ESPerform.get_cli()
q = dict()
q["query"] = {
"bool":{
"must":[
"bool": {
"must": [
{"term": {"is_online": True}},
{"term":{"is_deleted": False}}
{"term": {"is_deleted": False}}
]
}
}
q["sort"] = [
{"high_quality_topic_num":{"order":"desc"}}
{"high_quality_topic_num": {"order": "desc"}}
]
q["_source"] = {
"includes":["id"]
"includes": ["id"]
}
result_dict = ESPerform.get_search_results(es_cli_obj,"pictorial",q,offset,size)
MAX_LOAD = 1000
sizes = max(size, MAX_LOAD)
result_dict = ESPerform.get_search_results(es_cli_obj, "pictorial", q, offset=0, size=sizes)
pictorial_ids_list = []
if len(result_dict["hits"]) > 0:
pictorial_ids_list = [item["_source"]["id"] for item in result_dict["hits"]]
return pictorial_ids_list
pictorial_del_ids_list = []
if len(pictorial_ids_list) > 0:
for id in pictorial_ids_list:
q = {
"query": {
"bool": {
"must": [{
"term": {
"pictorial_id": id
}
}, {
"terms": {
"content_level": [3, 4, 5, 0]
}
}, {
"term": {
"is_online": True
}
}]
}
}
}
topic_ids_list = []
result_dict = ESPerform.get_search_results(es_cli_obj, "topic", q, offset=0, size=sizes)
if len(result_dict["hits"]) > 0:
topic_ids_list = [item["_source"]["id"] for item in result_dict["hits"]]
if len(topic_ids_list) > 5:
pictorial_del_ids_list.append(id)
return pictorial_del_ids_list[offset:(offset+size)]
else:
return []
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
@classmethod
def get_user_attention_pictorial_list(cls,user_id,offset=0,size=10,es_cli_obj=None):
def get_user_attention_pictorial_list(cls, user_id, offset=0, size=10, es_cli_obj=None):
"""
:remark: 获取用户关注小组列表
:return:
......@@ -91,29 +126,67 @@ class GroupUtils(object):
q = dict()
q["query"] = {
"bool":{
"must":[
{"term":{"is_online": True}},
{"term":{"user_id":user_id}},
{"term":{"is_deleted":False}}
"bool": {
"must": [
{"term": {"is_online": True}},
{"term": {"user_id": user_id}},
{"term": {"is_deleted": False}}
]
}
}
q["_source"] = {
"includes":["attention_pictorial_id_list"]
"includes": ["attention_pictorial_id_list"]
}
MAX_LOAD = 1000
sizes = max(size, MAX_LOAD)
result_dict = ESPerform.get_search_results(es_cli_obj, "user", q, offset=0, size=sizes)
pictorial_ids_list = []
if len(result_dict["hits"]) > 0:
pictorial_ids_list = result_dict["hits"][0]["_source"]["attention_pictorial_id_list"]
pictorial_del_ids_list = []
if len(pictorial_ids_list) > 0:
for id in pictorial_ids_list:
q = {
"query": {
"bool": {
"must": [{
"term": {
"pictorial_id": id
}
}, {
"terms": {
"content_level": [3, 4, 5, 0]
}
}, {
"term": {
"is_online": True
}
}]
}
}
}
topic_ids_list = []
result_dict = ESPerform.get_search_results(es_cli_obj, "topic", q, offset=0, size=sizes)
if len(result_dict["hits"]) > 0:
topic_ids_list = [item["_source"]["id"] for item in result_dict["hits"]]
if len(topic_ids_list) > 5:
pictorial_del_ids_list.append(id)
return pictorial_del_ids_list[offset:(offset+size)]
result_dict = ESPerform.get_search_results(es_cli_obj,"user",q,offset,size)
if len(result_dict["hits"])>0:
return result_dict["hits"][0]["_source"]["attention_pictorial_id_list"]
else:
return []
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
@classmethod
def get_pictorial_ids_by_aggs(cls,pictorial_ids_list,es_cli_obj=None):
def get_pictorial_ids_by_aggs(cls, pictorial_ids_list, es_cli_obj=None):
"""
:remark:聚合查询获取小组列表
:param group_id_list:
......@@ -124,34 +197,34 @@ class GroupUtils(object):
es_cli_obj = ESPerform.get_cli()
q = dict()
q["size"]=0
q["size"] = 0
q["query"] = {
"terms":{
"pictorial_id":pictorial_ids_list
"terms": {
"pictorial_id": pictorial_ids_list
}
}
q["aggs"] = {
"pictorial_ids":{
"terms":{
"field":"pictorial_id"
"pictorial_ids": {
"terms": {
"field": "pictorial_id"
},
"aggs":{
"max_date":{
"max":{
"field":"update_time_val"
"aggs": {
"max_date": {
"max": {
"field": "update_time_val"
}
}
}
}
}
result_dict = ESPerform.get_search_results(es_cli_obj,"topic",q,aggregations_query=True)
result_dict = ESPerform.get_search_results(es_cli_obj, "topic", q, aggregations_query=True)
buckets_list = result_dict["aggregations"]["pictorial_ids"]["buckets"]
sorted_buckets_list = sorted(buckets_list,key=lambda item:item["max_date"]["value"],reverse=True)
sorted_buckets_list = sorted(buckets_list, key=lambda item: item["max_date"]["value"], reverse=True)
sorted_pictorial_id_list = [item["key"] for item in sorted_buckets_list]
return sorted_pictorial_id_list
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
\ No newline at end of file
return []
......@@ -53,7 +53,6 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
if sort_type == GroupSortTypes.HOT_RECOMMEND:
pictorial_ids_list = GroupUtils.get_hot_pictorial_recommend_result_list(offset, size, es_cli_obj)
return {"pictorial_recommend_ids": pictorial_ids_list}
elif sort_type == GroupSortTypes.ATTENTION_RECOMMEND:
......@@ -61,6 +60,7 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
es_cli_obj=es_cli_obj)
if len(attention_pictorial_list) == 0:
return {"pictorial_recommend_ids": []}
else:
attention_pictorial_id_list = [item["pictorial_id"] for item in attention_pictorial_list]
sorted_pictorial_ids_list = GroupUtils.get_pictorial_ids_by_aggs(attention_pictorial_id_list,
......@@ -73,7 +73,6 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
for item in sorted_attention_pictorial_list:
if item["pictorial_id"] not in pictorial_recommend_ids_list:
pictorial_recommend_ids_list.append(item["pictorial_id"])
return {"pictorial_recommend_ids": pictorial_recommend_ids_list[offset:(offset + size)]}
except:
......@@ -106,7 +105,6 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
"includes": ["id", "pictorial_id", "tag_list"]
}
result_dict = ESPerform.get_search_results(es_cli_obj, "topic", q, offset, size)
logging.info("get result_dict:%s" % result_dict)
pict_pictorial_ids_list = []
topic_tag_list = []
pictorial_id_list = []
......
......@@ -16,6 +16,5 @@
"tag_id":{"type":"long"},
"tag_name":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},
"topic_id_list":{"type":"long"}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment