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

modify

parent a057d2cd
......@@ -50,4 +50,75 @@ def pick_celebrity(user_id,pick_id,offset=0,size=10):
return {"total_count":0,"hits":[]}
@bind("physical/search/pick_topic")
def pick_topic(user_id,pick_id,offset=0,size=10):
try:
redis_key = "physical:pick_topic:" + "user_id:" + str(user_id) + ":pick_id:" + str(pick_id)
have_read_pick_topic_ids = list()
try:
redis_celebrity_info = redis_client.get(redis_key)
have_read_pick_topic_ids = json.loads(redis_celebrity_info)
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
q = dict()
q["filter"] = {
"range":{"content_level":{"gte":3,"lte":5}}
}
query_function_score = dict()
functions_list = [
{
"filter": {"match": {"content_level": 5}},
"weight": 5
},
{
"filter": {"match": {"content_level": 4}},
"weight": 3
},
{
"filter": {"match": {"content_level": 3}},
"weight": 2
}
]
query_function_score = {
"query":{
"pick_id_list":[pick_id]},
"functions":functions_list
}
q["query"] = {
"funciton_score":query_function_score,
"bool":{
"must_not":{
"terms":{
"id":have_read_pick_topic_ids
}
}
}
}
q["sort"] = [
"_score"
]
q["_source"] = {
"include":["id"]
}
result_dict = ESPerform.get_search_results(ESPerform.get_cli(),sub_index_name="topic",query_body=q,offset=offset,size=size)
recommend_pick_topic_list = [item["id"] for item in result_dict["hits"]]
key_exist = len(have_read_pick_topic_ids) > 0
PickUtils.refresh_redis_data(have_read_celebrity_list=have_read_pick_topic_ids.extend(recommend_pick_topic_list),
redis_cli=redis_client,redis_key=redis_key,key_exist=key_exist)
return result_dict
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return {"total_count":0,"hits":[]}
......@@ -11,6 +11,7 @@
"content_level":{"type":"text"},
"user_id":{"type":"long"},
"share_num":{"type":"long"},
"pick_id_list":{"type":"long"},
"create_time":{"type":"date", "format":"date_time_no_millis"},
"update_time":{"type":"date", "format":"date_time_no_millis"}
}
......
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django.conf import settings
from django.core.management.base import BaseCommand, CommandError
import traceback
import logging
from libs.es import ESPerform
from django.db import models
import datetime
class PickTopic(models.Model):
class Meta:
verbose_name=u"pick帖子"
db_table = u"picktopic"
app_label = "api"
id = models.IntegerField(primary_key=True,verbose_name=u"主键ID")
topic_id = models.IntegerField(verbose_name=u"帖子ID")
pick_id = models.IntegerField(verbose_name=u"榜ID")
rank = models.IntegerField(verbose_name=u"排名")
create_time = models.DateTimeField(verbose_name=u'创建时间',default=datetime.datetime.fromtimestamp(0))
update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0))
......@@ -8,6 +8,7 @@ import logging
from libs.es import ESPerform
from django.db import models
import datetime
from .pick_topic import PickTopic
class Topic(models.Model):
class Meta:
......@@ -33,3 +34,15 @@ class Topic(models.Model):
content_level = models.CharField(verbose_name='内容等级')
def get_pick_id_info(self):
try:
pick_id_list = list()
query_list = PickTopic.objects.get(topic_id=self.id)
for item in query_list:
pick_id_list.append(item.pick_id)
return tuple(pick_id_list)
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return ()
......@@ -24,28 +24,14 @@ class TopicTransfer(object):
res["user_id"] = instance.user_id
res["share_num"] = instance.share_num
res["pick_id_list"] = instance.get_pick_id_info()
create_time = instance.create_time
print("id is:%d,create_time is:%sm,tzinfo:%s" % (res["id"],str(create_time),str(create_time.tzinfo)))
res["create_time"] = tzlc(create_time)
"""
if create_time.tzinfo is None:
res["create_time"] = tzlc(create_time)
else:
res["create_time"] = create_time.replace(microsecond=0)
"""
update_time = instance.update_time
res["update_time"] = tzlc(update_time)
"""
if update_time.tzinfo is None:
res["update_time"] = tzlc(update_time)
else:
res["update_time"] = update_time.replace(microsecond=0)
"""
return res
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
......
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