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

modify

parent ec2cb251
...@@ -69,6 +69,22 @@ class TopicUtils(object): ...@@ -69,6 +69,22 @@ class TopicUtils(object):
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return False return False
@classmethod
def ___get_should_term_list(cls,ori_list):
try:
should_term_list = list()
for term_id in ori_list:
term_dict = {
"term":{
"tag_list":{"value":term_id}
}
}
should_term_list.append(term_dict)
return should_term_list
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
@classmethod @classmethod
def get_recommend_topic_ids(cls,user_id,offset,size,is_first_time,group_topic_ids_index,not_group_topic_ids_index,query=None): def get_recommend_topic_ids(cls,user_id,offset,size,is_first_time,group_topic_ids_index,not_group_topic_ids_index,query=None):
""" """
...@@ -115,9 +131,16 @@ class TopicUtils(object): ...@@ -115,9 +131,16 @@ class TopicUtils(object):
user_tag_list = result_dict["hits"][0]["_source"]["tag_list"] user_tag_list = result_dict["hits"][0]["_source"]["tag_list"]
q = dict() q = dict()
q["query"] = dict()
q["query"]["bool"] = {
"must":{
"range": {"content_level": {"gte": 3, "lte": 5}}
}
}
"""
q["filter"] = { q["filter"] = {
"range": {"content_level": {"gte": 3, "lte": 5}} "range": {"content_level": {"gte": 3, "lte": 5}}
} }
if not is_first_time: if not is_first_time:
if group_topic_ids_index: if group_topic_ids_index:
q["filter"]["range"]["group_id"] = { q["filter"]["range"]["group_id"] = {
...@@ -126,29 +149,35 @@ class TopicUtils(object): ...@@ -126,29 +149,35 @@ class TopicUtils(object):
else: else:
q["filter"]["range"]["group_id"] = { q["filter"]["range"]["group_id"] = {
"lt": 0 "lt": 0
} }
"""
attention_user_id_term_list = cls.___get_should_term_list(attention_chinese_user_id_list + attention_japan_user_id_list + attention_korea_user_id_list)
pick_user_id_term_list = cls.___get_should_term_list(pick_chinese_user_id_list + pick_japan_user_id_list + pick_korea_user_id_list)
same_group_user_id_term_list = cls.___get_should_term_list(same_group_chinese_user_id_list + same_group_japan_user_id_list + same_group_korea_user_id_list)
functions_list = [ functions_list = [
{ {
"filter": {"match": { "filter": {"bool": {
"user_id": attention_chinese_user_id_list + attention_japan_user_id_list + attention_korea_user_id_list}}, "should": attention_user_id_term_list}},
"weight": 5, "weight": 5,
}, },
{ {
"filter": {"match": { "filter": {"match": {
"user_id": pick_chinese_user_id_list + pick_japan_user_id_list + pick_korea_user_id_list}}, "user_id": pick_user_id_term_list}},
"weight": 3 "weight": 3
}, },
{ {
"filter": {"match": { "filter": {"match": {
"user_id": same_group_chinese_user_id_list + same_group_japan_user_id_list + same_group_korea_user_id_list}}, "user_id": same_group_user_id_term_list}},
"weight": 2 "weight": 2
} }
] ]
query_tag_term_list = cls.___get_should_term_list(user_tag_list)
query_function_score = { query_function_score = {
"query": { "query": {
"match": { "bool": {
"tag_list": user_tag_list "should": query_tag_term_list
} }
}, },
"score_mode": "sum", "score_mode": "sum",
...@@ -156,9 +185,7 @@ class TopicUtils(object): ...@@ -156,9 +185,7 @@ class TopicUtils(object):
"functions": functions_list "functions": functions_list
} }
q["query"] = { q["query"]["function_score"] = query_function_score
"function_score": query_function_score
}
if query is not None:#搜索帖子 if query is not None:#搜索帖子
multi_fields = { multi_fields = {
......
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