Commit 49a7bf9d authored by 段英荣's avatar 段英荣

Merge branch 'revert-a3b0c854' into 'master'

Revert "Revert "Merge branch 'test' into 'master'""

See merge request !353
parents d3d9138e 27b037ea
...@@ -60,12 +60,21 @@ def sync_face_similar_data_to_redis(): ...@@ -60,12 +60,21 @@ def sync_face_similar_data_to_redis():
item_list = list() item_list = list()
for item in similar_result_items: for item in similar_result_items:
weight_score = int(item.similarity * 100)
item_list.append( item_list.append(
{ {
"contrast_user_id": item.contrast_user_id, "filter":{
"similarity": item.similarity "constant_score":{
"filter":{
"term":{"user_id": item.contrast_user_id}
}
}
},
"weight": weight_score*2
} }
) )
if len(item_list)>=100:
break
redis_client.set(redis_key, json.dumps(item_list)) redis_client.set(redis_key, json.dumps(item_list))
logging.info("participant_user_id:%d set data done!" % participant_user_id) logging.info("participant_user_id:%d set data done!" % participant_user_id)
......
...@@ -47,7 +47,7 @@ class GroupUtils(object): ...@@ -47,7 +47,7 @@ class GroupUtils(object):
return {"total_count": 0, "hits": []} return {"total_count": 0, "hits": []}
@classmethod @classmethod
def get_hot_pictorial_recommend_result_list(cls,offset,size,es_cli_obj=None,attention_tag_list=[]): def get_hot_pictorial_recommend_result_list(cls, offset, size, es_cli_obj=None, attention_tag_list=[]):
try: try:
if not es_cli_obj: if not es_cli_obj:
es_cli_obj = ESPerform.get_cli() es_cli_obj = ESPerform.get_cli()
...@@ -55,10 +55,10 @@ class GroupUtils(object): ...@@ -55,10 +55,10 @@ class GroupUtils(object):
functions_list = list() functions_list = list()
for tag_id in attention_tag_list: for tag_id in attention_tag_list:
functions_list.append({ functions_list.append({
"filter":{ "filter": {
"constant_score":{ "constant_score": {
"filter":{ "filter": {
"term":{ "term": {
"tag_id": tag_id "tag_id": tag_id
} }
} }
...@@ -67,7 +67,7 @@ class GroupUtils(object): ...@@ -67,7 +67,7 @@ class GroupUtils(object):
"weight": 20 "weight": 20
}) })
if len(functions_list)>=20: if len(functions_list) >= 20:
break break
functions_list.append( functions_list.append(
...@@ -82,17 +82,17 @@ class GroupUtils(object): ...@@ -82,17 +82,17 @@ class GroupUtils(object):
} }
) )
q = { q = {
"query":{ "query": {
"function_score":{ "function_score": {
"query":{ "query": {
"bool":{ "bool": {
"filter":[ "filter": [
{"term": {"is_online": True}}, {"term": {"is_online": True}},
{"term": {"is_deleted": False}}, {"term": {"is_deleted": False}},
{"term": {"effective": True}} {"term": {"effective": True}}
], ],
"must_not":[ "must_not": [
{"term":{"is_default":1}} {"term": {"is_default": 1}}
] ]
} }
}, },
...@@ -116,16 +116,16 @@ class GroupUtils(object): ...@@ -116,16 +116,16 @@ class GroupUtils(object):
} }
}, },
{ {
"_score":{ "_score": {
"order": "desc" "order": "desc"
} }
} }
] ]
q["_source"] = { q["_source"] = {
"includes":["id"] "includes": ["id"]
} }
result_dict = ESPerform.get_search_results(es_cli_obj,"pictorial",q,offset,size) result_dict = ESPerform.get_search_results(es_cli_obj, "pictorial", q, offset, size)
pictorial_ids_list = [] pictorial_ids_list = []
if len(result_dict["hits"]) > 0: if len(result_dict["hits"]) > 0:
...@@ -153,7 +153,7 @@ class GroupUtils(object): ...@@ -153,7 +153,7 @@ class GroupUtils(object):
{"term": {"is_online": True}}, {"term": {"is_online": True}},
{"term": {"user_id": user_id}}, {"term": {"user_id": user_id}},
{"term": {"is_deleted": False}}, {"term": {"is_deleted": False}},
{"term":{"effective":True}} {"term": {"effective": True}}
] ]
} }
} }
...@@ -171,7 +171,6 @@ class GroupUtils(object): ...@@ -171,7 +171,6 @@ class GroupUtils(object):
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return [] return []
@classmethod @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):
""" """
......
This diff is collapsed.
...@@ -10,6 +10,7 @@ from libs.es import ESPerform ...@@ -10,6 +10,7 @@ from libs.es import ESPerform
from search.utils.group import GroupUtils from search.utils.group import GroupUtils
from search.utils.common import GroupSortTypes from search.utils.common import GroupSortTypes
from libs.es import ESPerform from libs.es import ESPerform
from trans2es.models.pictorial import PictorialTopics
@bind("physical/search/query_pictorial") @bind("physical/search/query_pictorial")
...@@ -54,11 +55,12 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, ...@@ -54,11 +55,12 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
if sort_type == GroupSortTypes.HOT_RECOMMEND: if sort_type == GroupSortTypes.HOT_RECOMMEND:
# 用户关注标签 # 用户关注标签
attention_tag_list = list() attention_tag_list = list()
if user_id>0: if user_id > 0:
redis_tag_data = redis_client.hget("physical:linucb:register_user_tag_info", user_id) redis_tag_data = redis_client.hget("physical:linucb:register_user_tag_info", user_id)
attention_tag_list = json.loads(redis_tag_data) if redis_tag_data else [] attention_tag_list = json.loads(redis_tag_data) if redis_tag_data else []
pictorial_ids_list = GroupUtils.get_hot_pictorial_recommend_result_list(offset, size, es_cli_obj,attention_tag_list) pictorial_ids_list = GroupUtils.get_hot_pictorial_recommend_result_list(offset, size, es_cli_obj,
attention_tag_list)
return {"pictorial_recommend_ids": pictorial_ids_list} return {"pictorial_recommend_ids": pictorial_ids_list}
elif sort_type == GroupSortTypes.ATTENTION_RECOMMEND: elif sort_type == GroupSortTypes.ATTENTION_RECOMMEND:
...@@ -173,6 +175,13 @@ def pictorial_topic(topic_id=-1, offset=0, size=10): ...@@ -173,6 +175,13 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
"term": { "term": {
"is_deleted": False "is_deleted": False
} }
}, {
"range": {
"topic_id_list": {
"gte": 0
}
}
}] }]
} }
} }
...@@ -209,7 +218,7 @@ def pictorial_topic(topic_id=-1, offset=0, size=10): ...@@ -209,7 +218,7 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
@bind("physical/search/pictorial_topic_sort") @bind("physical/search/pictorial_topic_sort")
def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10): def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10):
""" """
:remark 小组排序,缺少:前1天发评论人数*x :remark 画报排序 人气 部分
:param user_id: :param user_id:
:param sort_type: :param sort_type:
:param offset: :param offset:
...@@ -221,33 +230,33 @@ def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10): ...@@ -221,33 +230,33 @@ def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10):
user_id = -1 user_id = -1
q = { q = {
"query":{ "query": {
"bool":{ "bool": {
"must":[ "must": [
{"term":{"pictorial_id": pictorial_id}}, {"term": {"pictorial_id": pictorial_id}},
{"term": {"is_online": True}}, {"term": {"is_online": True}},
{"term": {"is_deleted": False}}, {"term": {"is_deleted": False}},
] ]
} }
}, },
"sort":[ "sort": [
{"total_vote_num": {"order": "desc"}}, {"total_vote_num": {"order": "desc"}},
{"create_time": {"order": "desc"}} {"create_time": {"order": "desc"}}
] ]
} }
pict_pictorial_ids_list =[] pict_pictorial_ids_list = []
# 获取es链接对象 # 获取es链接对象
es_cli_obj = ESPerform.get_cli() es_cli_obj = ESPerform.get_cli()
result_dict = ESPerform.get_search_results(es_cli_obj, "topic", q, offset, size) result_dict = ESPerform.get_search_results(es_cli_obj, "topic", q, offset, size)
logging.info("get pictorial_topic_sort res:%s"%result_dict) logging.info("get pictorial_topic_sort res:%s" % result_dict)
for item in result_dict["hits"]: for item in result_dict["hits"]:
topic_id = item["_source"]["id"] topic_id = item["_source"]["id"]
pict_pictorial_ids_list.append(topic_id) pict_pictorial_ids_list.append(topic_id)
return {"pict_pictorial_ids_list":pict_pictorial_ids_list} return {"pict_pictorial_ids_list": pict_pictorial_ids_list}
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
......
This diff is collapsed.
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
"user_nick_name_pre": {"type":"text","analyzer":"keyword"}, //不切词的用户名 "user_nick_name_pre": {"type":"text","analyzer":"keyword"}, //不切词的用户名
"group_id":{"type":"long"}, //所在组ID "group_id":{"type":"long"}, //所在组ID
"tag_list":{"type":"long"},//标签属性 "tag_list":{"type":"long"},//标签属性
"useful_tag_list":{"type":"long"},//有用标签属性
"edit_tag_list":{"type":"long"},//编辑标签 "edit_tag_list":{"type":"long"},//编辑标签
"tag_name_list":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "tag_name_list":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},
"share_num":{"type":"long"}, "share_num":{"type":"long"},
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
"user_nick_name":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},//帖子用户名 "user_nick_name":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},//帖子用户名
"user_nick_name_pre": {"type":"text","analyzer":"keyword"}, //不切词的用户名 "user_nick_name_pre": {"type":"text","analyzer":"keyword"}, //不切词的用户名
"group_id":{"type":"long"}, //所在组ID "group_id":{"type":"long"}, //所在组ID
"useful_tag_list":{"type":"long"},//有用标签属性
"tag_list":{"type":"long"},//标签属性 "tag_list":{"type":"long"},//标签属性
"edit_tag_list":{"type":"long"},//编辑标签 "edit_tag_list":{"type":"long"},//编辑标签
"tag_name_list":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "tag_name_list":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
"user_nick_name_pre": {"type":"text","analyzer":"keyword"}, //不切词的用户名 "user_nick_name_pre": {"type":"text","analyzer":"keyword"}, //不切词的用户名
"group_id":{"type":"long"}, //所在组ID "group_id":{"type":"long"}, //所在组ID
"tag_list":{"type":"long"},//标签属性 "tag_list":{"type":"long"},//标签属性
"useful_tag_list":{"type":"long"},//有用标签属性
"edit_tag_list":{"type":"long"},//编辑标签 "edit_tag_list":{"type":"long"},//编辑标签
"tag_name_list":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "tag_name_list":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},
"share_num":{"type":"long"}, "share_num":{"type":"long"},
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
"is_online":{"type":"boolean"},//是否上线 "is_online":{"type":"boolean"},//是否上线
"is_deleted":{"type":"boolean"}, "is_deleted":{"type":"boolean"},
"tag_list":{"type":"long"},//标签属性 "tag_list":{"type":"long"},//标签属性
"useful_tag_list":{"type":"long"},//有用标签属性
"city_id":{"type":"text"}, "city_id":{"type":"text"},
"country_id":{"type":"text"}, "country_id":{"type":"text"},
"is_recommend":{"type":"boolean"},//是否运营推荐用户 "is_recommend":{"type":"boolean"},//是否运营推荐用户
......
...@@ -20,6 +20,7 @@ class TopicTag(models.Model): ...@@ -20,6 +20,7 @@ class TopicTag(models.Model):
topic_id = models.IntegerField(verbose_name=u"帖子ID") topic_id = models.IntegerField(verbose_name=u"帖子ID")
is_online = models.BooleanField(verbose_name=u"是否在线") is_online = models.BooleanField(verbose_name=u"是否在线")
is_collection = models.IntegerField(verbose_name=u"是否编辑标签") is_collection = models.IntegerField(verbose_name=u"是否编辑标签")
is_body_esthetics = models.IntegerField(verbose_name=u"是否有用标签")
class AccountUserTag(models.Model): class AccountUserTag(models.Model):
...@@ -33,6 +34,7 @@ class AccountUserTag(models.Model): ...@@ -33,6 +34,7 @@ class AccountUserTag(models.Model):
is_deleted = models.BooleanField(verbose_name=u"是否删除") is_deleted = models.BooleanField(verbose_name=u"是否删除")
create_time = models.DateTimeField(verbose_name=u'创建时间',default=datetime.datetime.fromtimestamp(0)) create_time = models.DateTimeField(verbose_name=u'创建时间',default=datetime.datetime.fromtimestamp(0))
update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0)) update_time = models.DateTimeField(verbose_name=u'更新时间', default=datetime.datetime.fromtimestamp(0))
is_body_esthetics = models.IntegerField(verbose_name=u"是否有用标签")
class Tag(models.Model): class Tag(models.Model):
......
...@@ -191,6 +191,18 @@ class Topic(models.Model): ...@@ -191,6 +191,18 @@ class Topic(models.Model):
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return ([],[]) return ([],[])
def get_topic_useful_tag_id_list(self):
try:
topic_useful_tag_id_list = list()
tag_id_list = TopicTag.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id,is_online =True,is_body_esthetics = 1)
for tag_item in tag_id_list:
topic_useful_tag_id_list.append(tag_item.tag_id)
return topic_useful_tag_id_list
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
def get_tag_name_list(self, tag_id_list): def get_tag_name_list(self, tag_id_list):
try: try:
tag_name_list = list() tag_name_list = list()
...@@ -227,10 +239,6 @@ class Topic(models.Model): ...@@ -227,10 +239,6 @@ class Topic(models.Model):
elif user_query_results[0].is_shadow: elif user_query_results[0].is_shadow:
user_is_shadow = True user_is_shadow = True
# 是否官方推荐小组
# if self.group and self.group.is_recommend:
# offline_score += 4.0
# 帖子等级 # 帖子等级
if self.content_level == '5': if self.content_level == '5':
offline_score += 100.0 *3 offline_score += 100.0 *3
...@@ -239,20 +247,8 @@ class Topic(models.Model): ...@@ -239,20 +247,8 @@ class Topic(models.Model):
elif self.content_level == '6': elif self.content_level == '6':
offline_score += 200.0 *3 offline_score += 200.0 *3
# is_excellent = self.judge_if_excellent_topic(self.id)
# if is_excellent:
# offline_score += 200.0
if self.language_type == 1: if self.language_type == 1:
offline_score += 60.0 offline_score += 60.0
# exposure_count = ActionSumAboutTopic.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id, data_type=1).count()
# click_count = ActionSumAboutTopic.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id, data_type=2).count()
# uv_num = ActionSumAboutTopic.objects.using(settings.SLAVE_DB_NAME).filter(topic_id=self.id, data_type=3).count()
#
# if exposure_count > 0:
# offline_score += click_count / exposure_count
# if uv_num > 0:
# offline_score += (self.vote_num / uv_num + self.reply_num / uv_num)
""" """
1:马甲账号是否对总分降权? 1:马甲账号是否对总分降权?
......
...@@ -189,3 +189,16 @@ class User(models.Model): ...@@ -189,3 +189,16 @@ class User(models.Model):
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return [] return []
def get_user_useful_tag_id_list(self):
try:
user_useful_tag_id_list = list()
query_results = AccountUserTag.objects.using(settings.SLAVE_DB_NAME).filter(user=self.user_id,is_body_esthetics =1, is_deleted=False)
for item in query_results:
user_useful_tag_id_list.append(item.tag_id)
return user_useful_tag_id_list
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
\ No newline at end of file
...@@ -75,6 +75,11 @@ class TopicTransfer(object): ...@@ -75,6 +75,11 @@ class TopicTransfer(object):
end = time.time() end = time.time()
time4 = (end-begin) time4 = (end-begin)
# begin = time.time()
topic_useful_tag_id_list= instance.get_topic_useful_tag_id_list()
res["useful_tag_list"] = topic_useful_tag_id_list
# end = time.time()
# time5 = (end - begin)
# # 片假名 # # 片假名
# re_jp_pian_words = re.compile(u"[\u30a0-\u30ff]+") # re_jp_pian_words = re.compile(u"[\u30a0-\u30ff]+")
# m_pian = re_jp_pian_words.search(instance.content, 0) # m_pian = re_jp_pian_words.search(instance.content, 0)
......
...@@ -73,6 +73,7 @@ class UserTransfer(object): ...@@ -73,6 +73,7 @@ class UserTransfer(object):
try: try:
res["tag_list"] = instance.get_user_tag_id_list() res["tag_list"] = instance.get_user_tag_id_list()
res["useful_tag_list"] = instance.get_user_useful_tag_id_list()
res["attention_user_id_list"] = cls.get_follow_user_id_list(userInstance=instance) res["attention_user_id_list"] = cls.get_follow_user_id_list(userInstance=instance)
# res["attention_group_id_list"] = instance.get_attention_group_id_list() # res["attention_group_id_list"] = instance.get_attention_group_id_list()
......
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