Commit 0b23d905 authored by 高雅喆's avatar 高雅喆

首页feed新用户冷启动的日记、帖子、问答队列

parent d72242ad
...@@ -31,7 +31,7 @@ def get_hot_search_words_tag(): ...@@ -31,7 +31,7 @@ def get_hot_search_words_tag():
WHERE a.is_delete=0 WHERE a.is_delete=0
AND b.tag_type+0<'4'+0 AND b.tag_type+0<'4'+0
AND b.is_online=1 AND b.is_online=1
ORDER BY a.sorted DESC LIMIT 10 ORDER BY a.sorted DESC
""" """
mysql_results = get_data_by_mysql('172.16.30.141', 3306, 'work', 'BJQaT9VzDcuPBqkd', 'zhengxing', hot_search) mysql_results = get_data_by_mysql('172.16.30.141', 3306, 'work', 'BJQaT9VzDcuPBqkd', 'zhengxing', hot_search)
return mysql_results return mysql_results
......
import redis
from tool import es_query from tool import es_query
from tool import get_data_by_mysql from tool import get_data_by_mysql
...@@ -5,14 +6,14 @@ from tool import get_data_by_mysql ...@@ -5,14 +6,14 @@ from tool import get_data_by_mysql
def get_all_city_id(): def get_all_city_id():
sql = "select distinct tag_id from api_city" sql = "select distinct tag_id from api_city"
mysql_results = get_data_by_mysql('172.16.30.141', 3306, 'work', 'BJQaT9VzDcuPBqkd', 'zhengxing', sql) mysql_results = get_data_by_mysql('172.16.30.141', 3306, 'work', 'BJQaT9VzDcuPBqkd', 'zhengxing', sql)
city_pinyins = [i["tag_id"] for i in mysql_results] city_tag_ids = [i["tag_id"] for i in mysql_results]
city_pinyins.append(-1) # 没有城市的情况 city_tag_ids.append(-1) # 没有城市的情况
return city_pinyins return city_tag_ids
def search_diary_by_match_phrase(tag_names, city_pinyin): def search_diary_by_match_phrase(tag_names, city_tag_id):
q = dict() q = dict()
if city_pinyin == -1: if city_tag_id == -1:
sort_list = [] sort_list = []
else: else:
sort_list = [ sort_list = [
...@@ -21,7 +22,7 @@ def search_diary_by_match_phrase(tag_names, city_pinyin): ...@@ -21,7 +22,7 @@ def search_diary_by_match_phrase(tag_names, city_pinyin):
'script_file': 'sort_diary-recommend', 'script_file': 'sort_diary-recommend',
'type': 'number', 'type': 'number',
'params': { 'params': {
'user_city_tag_id': city_pinyin, 'user_city_tag_id': city_tag_id,
}, },
'order': 'desc', 'order': 'desc',
'_cache': True, '_cache': True,
...@@ -74,7 +75,8 @@ def search_topic_by_match_phrase(tag_names): ...@@ -74,7 +75,8 @@ def search_topic_by_match_phrase(tag_names):
term_dict2 = { term_dict2 = {
"match_phrase": { "match_phrase": {
"tractate_tag_name_content": { "tractate_tag_name_content": {
"query": tag_name "query": tag_name,
'analyzer': 'gm_default_index'
} }
} }
} }
...@@ -133,14 +135,62 @@ def search_qa_by_match_phrase(tag_names): ...@@ -133,14 +135,62 @@ def search_qa_by_match_phrase(tag_names):
if __name__ == "__main__": if __name__ == "__main__":
# 获取所有的城市tag id # 获取所有的城市tag id
all_city_id = get_all_city_id() all_city_tag_id = get_all_city_id()
# 清空历史数据
redis_client = redis.StrictRedis.from_url('redis://:ReDis!GmTx*0aN9@172.16.40.173:6379')
hot_search_word_topic_queue_key = "coldstart:hot:search:word:topic:queue"
hot_search_word_qa_queue_key = "coldstart:hot:search:word:qa:queue"
hot_search_word_diary_queue_key = "coldstart:hot:search:word:diary:queue"
light_clinic_beauty_topic_queue_key = "coldstart:light:clinic:beauty:topic:queue"
light_clinic_beauty_qa_queue_key = "coldstart:light:clinic:beauty:qa:queue"
light_clinic_beauty_diary_queue_key = "coldstart:light:clinic:beauty:diary:queue"
card_types = ['diary', 'topic', 'qa']
word_refers = ['hot_search_word', 'light_clinic_beauty']
for card_type in card_types:
for word_refer in word_refers:
key = word_refer + '_' + card_type + '_queue_key'
redis_client.delete(key)
# 热搜词的候选队列 # 热搜词的候选队列
hot_search_word_diary_queue = list() hot_search_word_key = "user:service_coldstart_tags2_name"
hot_search_word_topic_queue = list() hot_search_word = redis_client.hgetall(hot_search_word_key)
hot_search_word_qa_queue = list() hot_search_word = [str(tag, 'utf-8') for tag in hot_search_word]
hot_search_word_diary_queue = dict()
# 队列存储
hot_search_word_topic_queue = search_topic_by_match_phrase(hot_search_word)
redis_client.lpush(hot_search_word_topic_queue_key, *hot_search_word_topic_queue)
hot_search_word_qa_queue = search_qa_by_match_phrase(hot_search_word)
redis_client.lpush(hot_search_word_qa_queue_key, hot_search_word_qa_queue)
for city_tag_id in all_city_tag_id:
diary_queue = search_diary_by_match_phrase(hot_search_word, city_tag_id)
hot_search_word_diary_queue.update({city_tag_id: diary_queue})
redis_client.hmset(hot_search_word_diary_queue_key, hot_search_word_diary_queue)
# 轻医美的候选队列 # 轻医美的候选队列
light_clinic_beauty_diary_queue = list() light_clinic_beauty_key = "coldstart:user:service_coldstart_tags3"
light_clinic_beauty_topic_queue = list() light_clinic_beauty = redis_client.hgetall(light_clinic_beauty_key)
light_clinic_beauty_qa_queue = list() light_clinic_beauty = [str(tag, 'utf-8') for tag in light_clinic_beauty]
light_clinic_beauty_diary_queue = dict()
# 队列存储
light_clinic_beauty_topic_queue = search_topic_by_match_phrase(light_clinic_beauty)
redis_client.lpush(light_clinic_beauty_topic_queue_key, *light_clinic_beauty_topic_queue)
light_clinic_beauty_qa_queue = search_qa_by_match_phrase(light_clinic_beauty)
redis_client.lpush(light_clinic_beauty_qa_queue_key, light_clinic_beauty_qa_queue)
for city_tag_id in all_city_tag_id:
diary_queue = search_diary_by_match_phrase(light_clinic_beauty, city_tag_id)
light_clinic_beauty_diary_queue.update({city_tag_id: diary_queue})
redis_client.hmset(light_clinic_beauty_diary_queue_key, light_clinic_beauty_diary_queue)
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