Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
P
physical
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
alpha
physical
Commits
76eacd02
Commit
76eacd02
authored
6 years ago
by
段英荣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify home_recommend
parent
c4a40c14
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
15 additions
and
17 deletions
+15
-17
es.py
libs/es.py
+2
-2
collect_data.py
linucb/views/collect_data.py
+2
-10
topic.py
search/views/topic.py
+2
-3
topic.json
trans2es/mapping/topic.json
+2
-1
topic.py
trans2es/models/topic.py
+1
-0
topic_transfer.py
trans2es/utils/topic_transfer.py
+6
-1
No files found.
libs/es.py
View file @
76eacd02
...
@@ -264,7 +264,7 @@ class ESPerform(object):
...
@@ -264,7 +264,7 @@ class ESPerform(object):
return
True
return
True
@classmethod
@classmethod
def
get_tag_topic_list
(
cls
,
tag_id
,
have_read_topic_id_list
):
def
get_tag_topic_list
(
cls
,
tag_id
,
have_read_topic_id_list
,
size
=
100
):
try
:
try
:
functions_list
=
list
()
functions_list
=
list
()
for
id
in
tag_id
:
for
id
in
tag_id
:
...
@@ -322,7 +322,7 @@ class ESPerform(object):
...
@@ -322,7 +322,7 @@ class ESPerform(object):
}
}
}
}
result_dict
=
ESPerform
.
get_search_results
(
ESPerform
.
get_cli
(),
sub_index_name
=
"topic"
,
query_body
=
q
,
result_dict
=
ESPerform
.
get_search_results
(
ESPerform
.
get_cli
(),
sub_index_name
=
"topic"
,
query_body
=
q
,
offset
=
0
,
size
=
100
,
routing
=
"4,5,6"
)
offset
=
0
,
size
=
size
,
routing
=
"4,5,6"
)
topic_id_list
=
[
item
[
"_source"
][
"id"
]
for
item
in
result_dict
[
"hits"
]]
topic_id_list
=
[
item
[
"_source"
][
"id"
]
for
item
in
result_dict
[
"hits"
]]
logging
.
info
(
"topic_id_list:
%
s"
%
str
(
topic_id_list
))
logging
.
info
(
"topic_id_list:
%
s"
%
str
(
topic_id_list
))
...
...
This diff is collapsed.
Click to expand it.
linucb/views/collect_data.py
View file @
76eacd02
...
@@ -54,9 +54,6 @@ class CollectData(object):
...
@@ -54,9 +54,6 @@ class CollectData(object):
def
update_recommend_tag_list
(
self
,
device_id
,
user_feature
=
None
,
user_id
=
None
,
click_topic_tag_list
=
None
):
def
update_recommend_tag_list
(
self
,
device_id
,
user_feature
=
None
,
user_id
=
None
,
click_topic_tag_list
=
None
):
try
:
try
:
recommend_tag_set
=
set
()
recommend_tag_list
=
list
()
recommend_tag_dict
=
dict
()
redis_linucb_tag_data_dict
=
self
.
_get_user_linucb_info
(
device_id
)
redis_linucb_tag_data_dict
=
self
.
_get_user_linucb_info
(
device_id
)
if
len
(
redis_linucb_tag_data_dict
)
==
0
:
if
len
(
redis_linucb_tag_data_dict
)
==
0
:
recommend_tag_list
=
LinUCB
.
get_default_tag_list
(
user_id
)
recommend_tag_list
=
LinUCB
.
get_default_tag_list
(
user_id
)
...
@@ -82,12 +79,9 @@ class CollectData(object):
...
@@ -82,12 +79,9 @@ class CollectData(object):
if
click_topic_tag_list
:
if
click_topic_tag_list
:
if
len
(
click_topic_tag_list
)
>
0
:
if
len
(
click_topic_tag_list
)
>
0
:
recommend_topic_id_list_click
=
ESPerform
.
get_tag_topic_list
(
click_topic_tag_list
,
recommend_topic_id_list_click
=
ESPerform
.
get_tag_topic_list
(
click_topic_tag_list
,
have_read_topic_id_list
)
have_read_topic_id_list
,
size
=
2
)
if
len
(
recommend_topic_id_list_click
)
>
0
:
if
len
(
recommend_topic_id_list_click
)
>
0
:
num
=
min
(
len
(
recommend_topic_id_list_click
),
2
)
recommend_topic_id_list
.
extend
(
recommend_topic_id_list_click
)
logging
.
info
(
"recommend_topic_id_list:
%
s"
%
(
str
(
num
)))
for
i
in
range
(
0
,
num
):
recommend_topic_id_list
.
append
(
recommend_topic_id_list_click
[
i
])
have_read_topic_id_list
.
extend
(
recommend_topic_id_list
)
have_read_topic_id_list
.
extend
(
recommend_topic_id_list
)
click_recommend_redis_key
=
self
.
click_recommend_redis_key_prefix
+
str
(
device_id
)
click_recommend_redis_key
=
self
.
click_recommend_redis_key_prefix
+
str
(
device_id
)
click_redis_data_dict
=
{
click_redis_data_dict
=
{
...
@@ -96,8 +90,6 @@ class CollectData(object):
...
@@ -96,8 +90,6 @@ class CollectData(object):
}
}
redis_client
.
hmset
(
click_recommend_redis_key
,
click_redis_data_dict
)
redis_client
.
hmset
(
click_recommend_redis_key
,
click_redis_data_dict
)
total_topic_list
=
list
()
tag_topic_id_list
=
list
()
tag_id_list
=
recommend_tag_list
[
0
:
100
]
tag_id_list
=
recommend_tag_list
[
0
:
100
]
topic_recommend_redis_key
=
self
.
linucb_recommend_topic_id_prefix
+
str
(
device_id
)
topic_recommend_redis_key
=
self
.
linucb_recommend_topic_id_prefix
+
str
(
device_id
)
...
...
This diff is collapsed.
Click to expand it.
search/views/topic.py
View file @
76eacd02
...
@@ -94,6 +94,7 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
...
@@ -94,6 +94,7 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
redis_user_similar_score_redis_val
)
if
redis_user_similar_score_redis_val
else
[]
redis_user_similar_score_redis_val
)
if
redis_user_similar_score_redis_val
else
[]
if
query
is
None
:
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
[]
if
len
(
recommend_topic_list
)
>
0
:
if
len
(
recommend_topic_list
)
>
0
:
...
@@ -115,7 +116,7 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
...
@@ -115,7 +116,7 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
recommend_tag_list
=
recommend_topic_list
,
recommend_tag_list
=
recommend_topic_list
,
user_similar_score_list
=
user_similar_score_redis_list
,
index_type
=
"topic"
,
routing
=
"4,5,6"
,
attention_tag_list
=
attention_tag_list
)
user_similar_score_list
=
user_similar_score_redis_list
,
index_type
=
"topic"
,
routing
=
"4,5,6"
,
attention_tag_list
=
attention_tag_list
)
if
(
len
(
recommend_topic_list
)
==
6
)
:
if
len
(
recommend_topic_list
)
==
6
and
query
is
None
:
if
(
size
<
11
):
if
(
size
<
11
):
topic_id_list
.
extend
(
rank_topic_id_list
[
0
:
3
])
topic_id_list
.
extend
(
rank_topic_id_list
[
0
:
3
])
topic_id_list
.
extend
(
recommend_topic_list
[
0
:
3
])
topic_id_list
.
extend
(
recommend_topic_list
[
0
:
3
])
...
@@ -129,8 +130,6 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
...
@@ -129,8 +130,6 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
else
:
else
:
topic_id_list
.
extend
(
rank_topic_id_list
)
topic_id_list
.
extend
(
rank_topic_id_list
)
logging
.
info
(
"attention_tag_list:
%
s"
%
(
str
(
topic_id_list
)))
have_read_topic_id_list
.
extend
(
topic_id_list
)
have_read_topic_id_list
.
extend
(
topic_id_list
)
if
len
(
have_read_topic_id_list
)
>
30000
:
if
len
(
have_read_topic_id_list
)
>
30000
:
cut_len
=
len
(
have_read_topic_id_list
)
-
30000
cut_len
=
len
(
have_read_topic_id_list
)
-
30000
...
...
This diff is collapsed.
Click to expand it.
trans2es/mapping/topic.json
View file @
76eacd02
...
@@ -51,6 +51,7 @@
...
@@ -51,6 +51,7 @@
"analyzer"
:
"gm_default_index"
,
"analyzer"
:
"gm_default_index"
,
"search_analyzer"
:
"gm_default_index"
"search_analyzer"
:
"gm_default_index"
},
},
"is_excellent"
:{
"type"
:
"long"
}
"is_excellent"
:{
"type"
:
"long"
},
"is_operation_home_recommend"
:
{
"type"
:
"boolean"
}
//是否首页运营推荐
}
}
}
}
This diff is collapsed.
Click to expand it.
trans2es/models/topic.py
View file @
76eacd02
...
@@ -290,3 +290,4 @@ class TopicHomeRecommend(models.Model):
...
@@ -290,3 +290,4 @@ class TopicHomeRecommend(models.Model):
id
=
models
.
IntegerField
(
verbose_name
=
u"id"
,
primary_key
=
True
)
id
=
models
.
IntegerField
(
verbose_name
=
u"id"
,
primary_key
=
True
)
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_deleted
=
models
.
BooleanField
(
verbose_name
=
u'是否删除'
)
This diff is collapsed.
Click to expand it.
trans2es/utils/topic_transfer.py
View file @
76eacd02
...
@@ -9,7 +9,7 @@ import time
...
@@ -9,7 +9,7 @@ import time
import
re
import
re
import
datetime
import
datetime
from
trans2es.models.user
import
User
from
trans2es.models.user
import
User
from
trans2es.models.topic
import
ExcellentTopic
from
trans2es.models.topic
import
ExcellentTopic
,
TopicHomeRecommend
class
TopicTransfer
(
object
):
class
TopicTransfer
(
object
):
...
@@ -121,6 +121,11 @@ class TopicTransfer(object):
...
@@ -121,6 +121,11 @@ class TopicTransfer(object):
else
:
else
:
res
[
"is_excellent"
]
=
0
res
[
"is_excellent"
]
=
0
res
[
"is_operation_home_recommend"
]
=
False
operation_home_recommend
=
TopicHomeRecommend
.
objects
.
filter
(
topic_id
=
instance
.
id
)
.
first
()
if
operation_home_recommend
and
operation_home_recommend
.
is_online
and
not
operation_home_recommend
.
is_deleted
:
res
[
"is_operation_home_recommend"
]
=
True
logging
.
info
(
"test topic transfer time cost,time0:
%
d,time1:
%
d,time2:
%
d,time3:
%
d,time4:
%
d"
%
(
time0
,
time1
,
time2
,
time3
,
time4
))
logging
.
info
(
"test topic transfer time cost,time0:
%
d,time1:
%
d,time2:
%
d,time3:
%
d,time4:
%
d"
%
(
time0
,
time1
,
time2
,
time3
,
time4
))
return
res
return
res
except
:
except
:
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment