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
钟尚武
physical
Commits
f2799640
Commit
f2799640
authored
Nov 26, 2018
by
段英荣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify
parent
a057d2cd
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
109 additions
and
15 deletions
+109
-15
pick.py
search/views/pick.py
+71
-0
topic.json
trans2es/mapping/topic.json
+1
-0
pick_topic.py
trans2es/models/pick_topic.py
+23
-0
topic.py
trans2es/models/topic.py
+13
-0
topic_transfer.py
trans2es/utils/topic_transfer.py
+1
-15
No files found.
search/views/pick.py
View file @
f2799640
...
...
@@ -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"
:[]}
trans2es/mapping/topic.json
View file @
f2799640
...
...
@@ -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"
}
}
...
...
trans2es/models/pick_topic.py
0 → 100644
View file @
f2799640
#!/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
))
trans2es/models/topic.py
View file @
f2799640
...
...
@@ -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
()
trans2es/utils/topic_transfer.py
View file @
f2799640
...
...
@@ -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
())
...
...
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