Commit f1c48ef6 authored by lixiaofang's avatar lixiaofang

Merge branch 'highlight_topic' of git.wanmeizhensuo.com:alpha/physical into highlight_topic

parents bf786d54 908f59d6
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (physical1)" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (LiXiaoFang)" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser"> <component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" /> <option name="shown" value="true" />
</component> </component>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4"> <module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.6 (physical1)" jdkType="Python SDK" /> <orderEntry type="jdk" jdkName="Python 3.6 (LiXiaoFang)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="TestRunnerService"> <component name="TestRunnerService">
......
...@@ -132,3 +132,26 @@ def get_tag_count(): ...@@ -132,3 +132,26 @@ def get_tag_count():
except: except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc()) logging.error("catch exception,err_msg:%s" % traceback.format_exc())
def del_pictorial_read_ten_redis():
try:
now = datetime.datetime.now().date()
yes_time = now - datetime.timedelta(days=10)
logging.info("get yes_time:%s" % yes_time)
device_id = "123456"
redis_key = "physical:home_recommend_pictorial" + ":device_id:" + str(device_id)
logging.info("get redis:%s" % redis_key)
redis_question_val_list = redis_client.hgetall(redis_key)
logging.info("get redis_question_val_list:%s" % redis_question_val_list)
for item in redis_question_val_list:
items = item.encode(encoding='utf-8')
if items < str(yes_time):
redis_client.hdel(redis_key, item)
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
...@@ -414,7 +414,9 @@ class ESPerform(object): ...@@ -414,7 +414,9 @@ class ESPerform(object):
"include": ["id", "user_id"] "include": ["id", "user_id"]
}, },
"sort": [ "sort": [
{"latest_reply_time": {"order": "desc"}}, {"_score": {"order": "desc"}},
{"latest_reply_time":{"order":"desc"}},
{"create_time_val": {"order": "desc"}}, {"create_time_val": {"order": "desc"}},
{"language_type": {"order": "asc"}}, {"language_type": {"order": "asc"}},
], ],
......
...@@ -159,7 +159,6 @@ class CollectData(object): ...@@ -159,7 +159,6 @@ class CollectData(object):
click_topic_tag_list = list() click_topic_tag_list = list()
if "on_click_feed_topic_card" == raw_val_dict["type"]: if "on_click_feed_topic_card" == raw_val_dict["type"]:
topic_id = raw_val_dict["params"]["topic_id"]
device_id = raw_val_dict["device"]["device_id"] device_id = raw_val_dict["device"]["device_id"]
user_id = raw_val_dict["user_id"] if "user_id" in raw_val_dict else None user_id = raw_val_dict["user_id"] if "user_id" in raw_val_dict else None
......
...@@ -47,7 +47,8 @@ class GroupUtils(object): ...@@ -47,7 +47,8 @@ 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=[],
have_read_pictorial_id_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()
...@@ -92,7 +93,8 @@ class GroupUtils(object): ...@@ -92,7 +93,8 @@ class GroupUtils(object):
{"term": {"effective": True}} {"term": {"effective": True}}
], ],
"must_not": [ "must_not": [
{"term": {"is_default": 1}} {"term": {"is_default": 1}},
# {"terms": {"id": have_read_pictorial_id_list}}
] ]
} }
}, },
...@@ -123,6 +125,10 @@ class GroupUtils(object): ...@@ -123,6 +125,10 @@ class GroupUtils(object):
"includes": ["id"] "includes": ["id"]
} }
if have_read_pictorial_id_list:
q["query"]["function_score"]["query"]["bool"]["must_not"].append(
{"terms": {"id": have_read_pictorial_id_list}})
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 = []
......
...@@ -738,10 +738,11 @@ class TopicUtils(object): ...@@ -738,10 +738,11 @@ class TopicUtils(object):
} }
# "includes": ["id", "pictorial_id", "user_id", "_score", "create_time", "content_level"] # "includes": ["id", "pictorial_id", "user_id", "_score", "create_time", "content_level"]
# q['sort'] = [ q['sort'] = [
{"latest_reply_time": {"order": "desc"}},
# {"content_level": {"order": "desc"}}, # {"content_level": {"order": "desc"}},
# {"create_time": {"order": "desc"}} # {"create_time": {"order": "desc"}}
# ] ]
result_dict = ESPerform.get_search_results(es_cli_obj, sub_index_name=index_type, query_body=q, size=size, result_dict = ESPerform.get_search_results(es_cli_obj, sub_index_name=index_type, query_body=q, size=size,
routing=routing) routing=routing)
...@@ -1146,6 +1147,7 @@ class TopicUtils(object): ...@@ -1146,6 +1147,7 @@ class TopicUtils(object):
if sorts: if sorts:
q["sort"] = sorts q["sort"] = sorts
logging.info("get --------qqqq:%s" % q)
result_dict = ESPerform.get_search_results( result_dict = ESPerform.get_search_results(
ESPerform.get_cli(), sub_index_name=index_name, ESPerform.get_cli(), sub_index_name=index_name,
query_body=q, offset=offset, size=size query_body=q, offset=offset, size=size
......
...@@ -40,6 +40,7 @@ def query_pictorial(query="", offset=0, size=10): ...@@ -40,6 +40,7 @@ def query_pictorial(query="", offset=0, size=10):
return {"group_ids": []} return {"group_ids": []}
@bind("physical/search/pictorial_sort") @bind("physical/search/pictorial_sort")
def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, size=10, device_id=""): def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, size=10, device_id=""):
""" """
...@@ -54,9 +55,33 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, ...@@ -54,9 +55,33 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
if not isinstance(user_id, int): if not isinstance(user_id, int):
user_id = -1 user_id = -1
if not isinstance(device_id, str):
device_id = ""
now = datetime.datetime.now().date()
yes_time = now - datetime.timedelta(days=10)
"""
过滤近10天读过的数据
"""
redis_key = ""
have_read_pictorial_id_list = set()
if device_id:
redis_key = "physical:home_recommend_pictorial" + ":device_id:" + str(device_id)
redis_question_val_list = redis_client.hgetall(redis_key)
for item in redis_question_val_list:
items = item.decode(encoding='utf-8')
# 先删除10天前的
if items < str(yes_time):
redis_client.hdel(redis_key, item)
# 获取近10天的读过的榜单
else:
value = redis_question_val_list.get(item, None).decode(encoding='utf-8')
for pictorial_id in value:
have_read_pictorial_id_list.add(pictorial_id)
logging.info("get have_read_tractate_id_list:%s" % have_read_pictorial_id_list)
# 获取es链接对象 # 获取es链接对象
es_cli_obj = ESPerform.get_cli() es_cli_obj = ESPerform.get_cli()
if sort_type == GroupSortTypes.HOT_RECOMMEND: if sort_type == GroupSortTypes.HOT_RECOMMEND:
# 用户关注标签 # 用户关注标签
attention_tag_list = list() attention_tag_list = list()
...@@ -65,7 +90,18 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, ...@@ -65,7 +90,18 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
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, pictorial_ids_list = GroupUtils.get_hot_pictorial_recommend_result_list(offset, size, es_cli_obj,
attention_tag_list) attention_tag_list) #
logging.info("get pictorial_ids_list:%s" % pictorial_ids_list)
"""
增加已读过滤
"""
if len(pictorial_ids_list) > 0:
if redis_key:
for id in pictorial_ids_list:
have_read_pictorial_id_list.add(id)
redis_client.hset(redis_key, now, json.dumps(list(have_read_pictorial_id_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:
...@@ -86,6 +122,15 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, ...@@ -86,6 +122,15 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
for item in sorted_attention_pictorial_list: for item in sorted_attention_pictorial_list:
if item["pictorial_id"] not in pictorial_recommend_ids_list: if item["pictorial_id"] not in pictorial_recommend_ids_list:
pictorial_recommend_ids_list.append(item["pictorial_id"]) pictorial_recommend_ids_list.append(item["pictorial_id"])
"""
增加已读过滤
"""
if len(pictorial_recommend_ids_list[offset:(offset + size)]) > 0:
if redis_key:
for id in pictorial_recommend_ids_list[offset:(offset + size)]:
have_read_pictorial_id_list.add(id)
redis_client.hset(redis_key, now, json.dumps(list(have_read_pictorial_id_list)))
return {"pictorial_recommend_ids": pictorial_recommend_ids_list[offset:(offset + size)]} return {"pictorial_recommend_ids": pictorial_recommend_ids_list[offset:(offset + size)]}
except: except:
...@@ -93,7 +138,6 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, ...@@ -93,7 +138,6 @@ def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0,
return {"pictorial_recommend_ids": []} return {"pictorial_recommend_ids": []}
@bind("physical/search/pictorial_topic")
def pictorial_topic(topic_id=-1, offset=0, size=10): def pictorial_topic(topic_id=-1, offset=0, size=10):
""" """
:remark 入选画报 :remark 入选画报
...@@ -314,6 +358,246 @@ def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10): ...@@ -314,6 +358,246 @@ def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10):
return {"pict_pictorial_ids_list": []} return {"pict_pictorial_ids_list": []}
@bind("physical/search/pictorial_topic")
def pictorial_topic_v1(topic_id=-1, offset=0, size=10):
"""
:remark 入选画报
:param user_id:
:param sort_type:
:param offset:
:param size:
:return:
"""
try:
# 获取es链接对象
es_cli_obj = ESPerform.get_cli()
q = {}
# 获取帖子从属的画报
q["query"] = {
"bool": {
"must": [
{
"term": {
"id": topic_id
}
},
{
"term": {
"is_online": True
}
}
],
"must_not": [
{
"term": {
"is_history": True
}
}
]
}
}
q["_source"] = {
"includes": ["id", "pictorial_id", "edit_tag_list"]
}
result_dict = ESPerform.get_search_results(es_cli_obj, "topic", q, offset=0, size=1)
edit_tag_list = []
pictorial_id_list = []
if len(result_dict["hits"]) > 0:
for item in result_dict["hits"]:
edit_tag_list = item["_source"]["edit_tag_list"]
functions_list = [
{
"filter": {
"bool": {
"must": {
"term": {
"topic_id_list": topic_id
}
}
}
},
"weight": 200
},
{
"filter": {
"bool": {
"must": {
"term": {
"is_recommend": True
}
}
}
},
"weight": 100
}
]
query_function_score = {
"query": {
"bool": {
"must": [{
"terms": {
"edit_tag_list": edit_tag_list
}
},
{
"term": {
"is_online": True
}
},
{
"term": {
"is_deleted": False
}
},
]
}
},
"score_mode": "sum",
"boost_mode": "replace",
"functions": functions_list
}
q["query"] = {
"function_score": query_function_score
}
q["_source"] = {
"includes": ["id", "edit_tag_list", "topic_id_list"]
}
q["sort"] = [
{
"_script": {
"type": "number",
"script": {
"lang": "expression",
"source": "_score+doc['reply_score']"
},
"order": "desc"
}
}
]
result_dict = ESPerform.get_search_results(es_cli_obj, "pictorial", q, offset, size)
if len(result_dict["hits"]) > 0:
for item in result_dict["hits"]:
pictorial_id = item["_source"]["id"]
pictorial_id_list.append(pictorial_id)
return {"pictorial_ids_list": pictorial_id_list}
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return {"pictorial_ids_list": []}
@bind("physical/search/pictorial_sort")
def pictorial_sort(user_id=-1, sort_type=GroupSortTypes.HOT_RECOMMEND, offset=0, size=10, device_id=""):
"""
:remark 小组排序,缺少:前1天发评论人数*x
:param user_id:
:param sort_type:
:param offset:
:param size:
:return:
"""
try:
if not isinstance(user_id, int):
user_id = -1
if not isinstance(device_id, str):
device_id = ""
now = datetime.datetime.now().date()
yes_time = now - datetime.timedelta(days=10)
"""
过滤近10天读过的数据
"""
redis_key = ""
have_read_pictorial_id_list = list()
if device_id:
redis_key = "physical:home_recommend_pictorial" + ":device_id:" + str(device_id)
redis_question_val_list = redis_client.hgetall(redis_key)
logging.info("get redis_question_val_list:%s" % redis_question_val_list)
for item in redis_question_val_list:
items = item.decode(encoding='utf-8')
logging.info("get items:%s" % items)
# 先删除10天前的
if items < str(yes_time):
redis_client.hdel(redis_key, item)
# 获取近10天的读过的榜单
else:
# value = redis_question_val_list.get(item, None).decode(encoding='utf-8')
value = json.loads(redis_question_val_list[item])
logging.info("get value:%s" % value)
if len(value):
for pictorial_id in value:
have_read_pictorial_id_list.append(pictorial_id)
logging.info("get have_read_tractate_id_list:%s" % have_read_pictorial_id_list)
# 获取es链接对象
es_cli_obj = ESPerform.get_cli()
if sort_type == GroupSortTypes.HOT_RECOMMEND:
# 用户关注标签
attention_tag_list = list()
if user_id > 0:
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 []
pictorial_ids_list = GroupUtils.get_hot_pictorial_recommend_result_list(offset, size, es_cli_obj,
attention_tag_list,
have_read_pictorial_id_list)
logging.info("get pictorial_ids_list:%s" % pictorial_ids_list)
"""
增加已读过滤
"""
if len(pictorial_ids_list) > 0:
if redis_key:
for id in pictorial_ids_list:
have_read_pictorial_id_list.append(id)
redis_client.hset(redis_key, now, json.dumps(list(have_read_pictorial_id_list)))
return {"pictorial_recommend_ids": pictorial_ids_list}
elif sort_type == GroupSortTypes.ATTENTION_RECOMMEND:
attention_pictorial_list = GroupUtils.get_user_attention_pictorial_list(user_id, offset=0, size=1,
es_cli_obj=es_cli_obj)
if len(attention_pictorial_list) == 0:
return {"pictorial_recommend_ids": []}
else:
attention_pictorial_id_list = [item["pictorial_id"] for item in attention_pictorial_list]
sorted_pictorial_ids_list = GroupUtils.get_pictorial_ids_by_aggs(attention_pictorial_id_list,
es_cli_obj)
pictorial_recommend_ids_list = sorted_pictorial_ids_list
# if len(group_recommend_ids_list) < size and len(group_recommend_ids_list)<len(attention_group_list):
sorted_attention_pictorial_list = sorted(attention_pictorial_list,
key=lambda item: item["update_time_val"], reverse=True)
for item in sorted_attention_pictorial_list:
if item["pictorial_id"] not in pictorial_recommend_ids_list:
pictorial_recommend_ids_list.append(item["pictorial_id"])
"""
增加已读过滤
"""
if len(pictorial_recommend_ids_list[offset:(offset + size)]) > 0:
if redis_key:
for id in pictorial_recommend_ids_list[offset:(offset + size)]:
have_read_pictorial_id_list.append(id)
redis_client.hset(redis_key, now, json.dumps(list(have_read_pictorial_id_list)))
return {"pictorial_recommend_ids": pictorial_recommend_ids_list[offset:(offset + size)]}
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return {"pictorial_recommend_ids": []}
@bind("physical/search/search_physical") @bind("physical/search/search_physical")
def search_physical(query="", offset=0, size=10): def search_physical(query="", offset=0, size=10):
""" """
...@@ -396,16 +680,19 @@ def pictorial_activity_sort(activity_id=0, offset=0, size=10, sort_type=1): ...@@ -396,16 +680,19 @@ def pictorial_activity_sort(activity_id=0, offset=0, size=10, sort_type=1):
q["sort"] = process_sort(sort_type) q["sort"] = process_sort(sort_type)
es_cli_obj = ESPerform.get_cli() es_cli_obj = ESPerform.get_cli()
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)
if len(result_dict["hits"]) > 0: if len(result_dict["hits"]) > 0:
for item in result_dict["hits"]: for item in result_dict["hits"]:
pictorial_id = item["_source"]["id"] pictorial_id = item["_source"]["id"]
vote_num = item["_source"]["topic_vote_number"] vote_num = item["_source"]["topic_vote_number"]
pictorial_ids_list.append({"pictorial_id": pictorial_id, "vote_num": vote_num}) pictorial_ids_list.append({"pictorial_id": pictorial_id, "vote_num": vote_num})
redis_client.set(redis_key, json.dumps(pictorial_ids_list)) redis_client.set(redis_key, json.dumps(pictorial_ids_list))
else: else:
redis_field_val_list = redis_client.get(redis_key) redis_field_val_list = redis_client.get(redis_key)
pictorial_ids_list_all = json.loads(str(redis_field_val_list, encoding="utf-8")) pictorial_ids_list_all = json.loads(str(redis_field_val_list, encoding="utf-8"))
pictorial_ids_list = pictorial_ids_list_all[offset:size + offset] pictorial_ids_list = pictorial_ids_list_all[offset:offset + size]
return {"pictorial_activity_sort": pictorial_ids_list} return {"pictorial_activity_sort": pictorial_ids_list}
...@@ -506,13 +793,49 @@ def pictorial_topic_sort_peoplehot(pictorial_id=-1, user_id=-1, offset=0, size=1 ...@@ -506,13 +793,49 @@ def pictorial_topic_sort_peoplehot(pictorial_id=-1, user_id=-1, offset=0, size=1
@bind("physical/search/pictorial_activity_sort") @bind("physical/search/pictorial_activity_sort")
def get_pictorial_activeity_sort(activity_id=0, pictorial_id=0): def get_pictorial_activeity_sort(activity_id=-1, pictorial_id=-1):
try: try:
pictorial_activity_sort_only = [] pictorial_activity_sort_only = []
"""
判断在不在活动中
"""
q = {
"query": {
"bool": {
"must": [
{
"term": {
"activity_join": activity_id
}
},
{
"term": {
"id": pictorial_id
}
},
{
"term": {
"is_cover": True
}
},
{
"term": {
"is_online": True
}
}
]
}
}
}
result_dict = ESPerform.get_search_results(ESPerform.get_cli(), "pictorial", q, 0, 1)
if len(result_dict["hits"]) == 0:
pictorial_activity_sort_only.append({"pictorial_id": pictorial_id, "pictorial_sort": 0})
return {"pictorial_activity_sort": pictorial_activity_sort_only}
pictorial_ids_list = pictorial_activity_sort(activity_id=activity_id, size=999, offset=0, sort_type=1) pictorial_ids_list = pictorial_activity_sort(activity_id=activity_id, size=999, offset=0, sort_type=1)
logging.info("get pictorial_ids_list:%s" % pictorial_ids_list)
data = pictorial_ids_list.get("pictorial_activity_sort", []) data = pictorial_ids_list.get("pictorial_activity_sort", [])
logging.info("get data:%s" % data)
if data: if data:
pictorial_ids = [] pictorial_ids = []
for item in data: for item in data:
......
...@@ -41,7 +41,7 @@ def search_hotword(device_id=-1): ...@@ -41,7 +41,7 @@ def search_hotword(device_id=-1):
for item in results_registr_tag: for item in results_registr_tag:
for word in item.split(): for word in item.split():
tag_val_list.add(word) tag_val_list.add(word)
tag_id_list = random.sample(range(0, len(tag_val_list)), 6) tag_id_list = random.sample(range(0, len(tag_val_list)),1)
for tag_id in tag_id_list: for tag_id in tag_id_list:
tag_val = list(tag_val_list)[tag_id] tag_val = list(tag_val_list)[tag_id]
all_tag_name_list.add(tag_val) all_tag_name_list.add(tag_val)
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
"tag_list":{"type":"long"},//标签属性 "tag_list":{"type":"long"},//标签属性
"latest_reply_time":{"type":"date", "format":"date_time_no_millis"}, "latest_reply_time":{"type":"date", "format":"date_time_no_millis"},
"useful_tag_list":{"type":"long"},//有用标签属性 "useful_tag_list":{"type":"long"},//有用标签属性
"latest_reply_time":{"type":"date", "format":"date_time_no_millis"},
"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"},
......
...@@ -8,19 +8,19 @@ ...@@ -8,19 +8,19 @@
"vote_num":{"type":"long"}, "vote_num":{"type":"long"},
"total_vote_num":{"type":"long"}, "total_vote_num":{"type":"long"},
"reply_num":{"type":"long"}, "reply_num":{"type":"long"},
"name":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "name":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},
"description":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "description":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},
"content":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "content":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},
"content_level":{"type":"text"}, "content_level":{"type":"text"},
"user_id":{"type":"long"}, "user_id":{"type":"long"},
"user_nick_name":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},//帖子用户名 "user_nick_name":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},//帖子用户名
"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"},//有用标签属性 "useful_tag_list":{"type":"long"},//有用标签属性
"latest_reply_time":{"type":"date", "format":"date_time_no_millis"}, "latest_reply_time":{"type":"date", "format":"date_time_no_millis"},
"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":"keyword","search_analyzer":"keyword"},
"share_num":{"type":"long"}, "share_num":{"type":"long"},
"pick_id_list":{"type":"long"}, "pick_id_list":{"type":"long"},
"offline_score":{"type":"double"},//离线算分 "offline_score":{"type":"double"},//离线算分
...@@ -45,14 +45,14 @@ ...@@ -45,14 +45,14 @@
"platform": {"type": "long"}, "platform": {"type": "long"},
"platform_id": {"type": "long"}, "platform_id": {"type": "long"},
"drop_score":{"type": "double"}, // 人工降分 "drop_score":{"type": "long"}, // 人工降分
"sort_score":{"type": "double"}, // 排序分 "sort_score":{"type": "double"}, // 排序分
"pictorial_id":{"type": "long"}, //所在组ID "pictorial_id":{"type": "long"}, //所在组ID
"pictorial_name":{ // 所在组名称 "pictorial_name":{ // 所在组名称
"type": "text", "type": "text",
"analyzer": "gm_default_index", "analyzer": "keyword",
"search_analyzer": "gm_default_index" "search_analyzer": "keyword"
}, },
"is_excellent":{"type": "long"}, "is_excellent":{"type": "long"},
"is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐 "is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐
......
...@@ -8,19 +8,20 @@ ...@@ -8,19 +8,20 @@
"vote_num":{"type":"long"}, "vote_num":{"type":"long"},
"total_vote_num":{"type":"long"}, "total_vote_num":{"type":"long"},
"reply_num":{"type":"long"}, "reply_num":{"type":"long"},
"name":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "name":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},
"description":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "description":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},
"content":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"}, "content":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},
"content_level":{"type":"text"}, "content_level":{"type":"text"},
"user_id":{"type":"long"}, "user_id":{"type":"long"},
"user_nick_name":{"type":"text","analyzer":"gm_default_index","search_analyzer":"gm_default_index"},//帖子用户名 "user_nick_name":{"type":"text","analyzer":"keyword","search_analyzer":"keyword"},//帖子用户名
"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"},//标签属性
"latest_reply_time":{"type":"date", "format":"date_time_no_millis"}, "latest_reply_time":{"type":"date", "format":"date_time_no_millis"},
"useful_tag_list":{"type":"long"},//有用标签属性 "useful_tag_list":{"type":"long"},//有用标签属性
"latest_reply_time":{"type":"date", "format":"date_time_no_millis"},
"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":"keyword","search_analyzer":"keyword"},
"share_num":{"type":"long"}, "share_num":{"type":"long"},
"pick_id_list":{"type":"long"}, "pick_id_list":{"type":"long"},
"offline_score":{"type":"double"},//离线算分 "offline_score":{"type":"double"},//离线算分
...@@ -45,14 +46,14 @@ ...@@ -45,14 +46,14 @@
"platform": {"type": "long"}, "platform": {"type": "long"},
"platform_id": {"type": "long"}, "platform_id": {"type": "long"},
"drop_score":{"type": "double"}, // 人工降分 "drop_score":{"type": "long"}, // 人工降分
"sort_score":{"type": "double"}, // 排序分 "sort_score":{"type": "double"}, // 排序分
"pictorial_id":{"type": "long"}, //所在组ID "pictorial_id":{"type": "long"}, //所在组ID
"pictorial_name":{ // 所在组名称 "pictorial_name":{ // 所在组名称
"type": "text", "type": "text",
"analyzer": "gm_default_index", "analyzer": "keyword",
"search_analyzer": "gm_default_index" "search_analyzer": "keyword"
}, },
"is_excellent":{"type": "long"}, "is_excellent":{"type": "long"},
"is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐 "is_operation_home_recommend": {"type": "boolean"}, //是否首页运营推荐
......
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