Commit bc93476d authored by lixiaofang's avatar lixiaofang

add

parent 19f3ba37
...@@ -10,10 +10,11 @@ from libs.es import ESPerform ...@@ -10,10 +10,11 @@ from libs.es import ESPerform
from search.utils.pick import PickUtils from search.utils.pick import PickUtils
from search.utils.common import PickType from search.utils.common import PickType
@bind("physical/search/pick_celebrity") @bind("physical/search/pick_celebrity")
def pick_celebrity(user_id,pick_id,offset=0,size=10): def pick_celebrity(user_id, pick_id, offset=0, size=10):
try: try:
if not isinstance(user_id,int): if not isinstance(user_id, int):
user_id = -1 user_id = -1
have_read_pick_celebrity_ids = list() have_read_pick_celebrity_ids = list()
...@@ -30,23 +31,24 @@ def pick_celebrity(user_id,pick_id,offset=0,size=10): ...@@ -30,23 +31,24 @@ def pick_celebrity(user_id,pick_id,offset=0,size=10):
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
pass pass
recommend_pick_celebrity_list = PickUtils.get_recommend_celebrity_id_list(pick_id,have_read_pick_celebrity_ids,offset,size) recommend_pick_celebrity_list = PickUtils.get_recommend_celebrity_id_list(pick_id, have_read_pick_celebrity_ids,
offset, size)
if len(recommend_pick_celebrity_list)>0 and user_id!=-1: if len(recommend_pick_celebrity_list) > 0 and user_id != -1:
total_read_celebrity_ids = have_read_pick_celebrity_ids + recommend_pick_celebrity_list total_read_celebrity_ids = have_read_pick_celebrity_ids + recommend_pick_celebrity_list
PickUtils.refresh_redis_data(have_read_celebrity_list=total_read_celebrity_ids, PickUtils.refresh_redis_data(have_read_celebrity_list=total_read_celebrity_ids,
redis_cli=redis_client,redis_key=redis_key) redis_cli=redis_client, redis_key=redis_key)
return {"recommend_pick_celebrity_ids": recommend_pick_celebrity_list} return {"recommend_pick_celebrity_ids": recommend_pick_celebrity_list}
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return {"recommend_pick_celebrity_ids":[]} return {"recommend_pick_celebrity_ids": []}
@bind("physical/search/pick_topic") @bind("physical/search/pick_topic")
def pick_topic(user_id,pick_id,offset=0,size=10): def pick_topic(user_id, pick_id, offset=0, size=10):
try: try:
if not isinstance(user_id,int): if not isinstance(user_id, int):
user_id = -1 user_id = -1
have_read_pick_topic_ids = list() have_read_pick_topic_ids = list()
...@@ -88,10 +90,10 @@ def pick_topic(user_id,pick_id,offset=0,size=10): ...@@ -88,10 +90,10 @@ def pick_topic(user_id,pick_id,offset=0,size=10):
] ]
query_function_score = { query_function_score = {
"query":{ "query": {
"bool":{ "bool": {
"must":[ "must": [
{"term":{"pick_id_list":pick_id}}, {"term": {"pick_id_list": pick_id}},
{"range": {"content_level": {"gte": 3, "lte": 5}}} {"range": {"content_level": {"gte": 3, "lte": 5}}}
], ],
"must_not": { "must_not": {
...@@ -103,38 +105,39 @@ def pick_topic(user_id,pick_id,offset=0,size=10): ...@@ -103,38 +105,39 @@ def pick_topic(user_id,pick_id,offset=0,size=10):
}, },
"score_mode": "sum", "score_mode": "sum",
"boost_mode": "replace", "boost_mode": "replace",
"functions":functions_list "functions": functions_list
} }
q["query"] = { q["query"] = {
"function_score":query_function_score "function_score": query_function_score
} }
q["sort"] = [ q["sort"] = [
"_score" "_score"
] ]
q["_source"] = { q["_source"] = {
"includes":["id"] "includes": ["id"]
} }
result_dict = ESPerform.get_search_results(ESPerform.get_cli(),sub_index_name="topic",query_body=q,offset=offset,size=size) result_dict = ESPerform.get_search_results(ESPerform.get_cli(), sub_index_name="topic", query_body=q,
offset=offset, size=size)
recommend_pick_topic_list = [] recommend_pick_topic_list = []
if len(result_dict["hits"]) > 0: if len(result_dict["hits"]) > 0:
recommend_pick_topic_list = [item["_source"]["id"] for item in result_dict["hits"]] recommend_pick_topic_list = [item["_source"]["id"] for item in result_dict["hits"]]
if len(recommend_pick_topic_list)>0 and user_id!=-1: if len(recommend_pick_topic_list) > 0 and user_id != -1:
total_read_topic_ids = have_read_pick_topic_ids + recommend_pick_topic_list total_read_topic_ids = have_read_pick_topic_ids + recommend_pick_topic_list
PickUtils.refresh_redis_data(have_read_celebrity_list=total_read_topic_ids, PickUtils.refresh_redis_data(have_read_celebrity_list=total_read_topic_ids,
redis_cli=redis_client,redis_key=redis_key,if_expire=False) redis_cli=redis_client, redis_key=redis_key, if_expire=False)
return {"recommend_pick_topic_ids": recommend_pick_topic_list} return {"recommend_pick_topic_ids": recommend_pick_topic_list}
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return {"recommend_pick_topic_ids":[]} return {"recommend_pick_topic_ids": []}
@bind("physical/search/pick_query") @bind("physical/search/pick_query")
def pick_query(query="",pick_id=-1,query_type=PickType.TOPIC_PICK,offset=0,size=10): def pick_query(query="", pick_id=-1, query_type=PickType.TOPIC_PICK, offset=0, size=10):
""" """
:remark 榜单搜索 :remark 榜单搜索
:param query: :param query:
...@@ -147,15 +150,11 @@ def pick_query(query="",pick_id=-1,query_type=PickType.TOPIC_PICK,offset=0,size= ...@@ -147,15 +150,11 @@ def pick_query(query="",pick_id=-1,query_type=PickType.TOPIC_PICK,offset=0,size=
try: try:
pick_query_result_list = [] pick_query_result_list = []
if query_type == PickType.TOPIC_PICK: if query_type == PickType.TOPIC_PICK:
pick_query_result_list = PickUtils.get_topic_pick_query(query,pick_id,offset,size) pick_query_result_list = PickUtils.get_topic_pick_query(query, pick_id, offset, size)
elif query_type == PickType.CELEBRITY_PICK: elif query_type == PickType.CELEBRITY_PICK:
pick_query_result_list = PickUtils.get_celebrity_pick_query(query,pick_id,offset,size) pick_query_result_list = PickUtils.get_celebrity_pick_query(query, pick_id, offset, size)
return {"pick_query_result_list":pick_query_result_list} return {"pick_query_result_list": pick_query_result_list}
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return {"pick_query_result_list":[]} return {"pick_query_result_list": []}
This diff is collapsed.
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