Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
search_tips
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
rank
search_tips
Commits
0e753cba
Commit
0e753cba
authored
Aug 27, 2019
by
李小芳
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into 'wordres'
# Conflicts: # search/utils/auto_tips.py
parents
eeb5150f
0db0bc46
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
44 deletions
+26
-44
auto_tips.py
search/utils/auto_tips.py
+3
-4
type_info.py
trans2es/type_info.py
+3
-3
wordresemble.py
trans2es/utils/wordresemble.py
+20
-37
No files found.
search/utils/auto_tips.py
View file @
0e753cba
...
...
@@ -38,6 +38,8 @@ def get_suggest_tips(query, lat, lng, offset=0, size=50):
#
# logging.info("get whole_query:%s" % whole_query)
# hits = whole_query["hits"]["hits"]
#
# for item in hits:
...
...
@@ -168,10 +170,7 @@ def get_suggest_tips(query, lat, lng, offset=0, size=50):
return
ret_list
else
:
query_ret_list
=
[]
wordresemble_ret_list
=
[]
value_data
=
[]
QUERY_KEY
=
"query:search_tip"
QUERY_KEY
=
"query:{}:search_tip"
query_base64
=
base64
.
b64encode
(
query
.
encode
(
'utf8'
))
.
decode
(
'utf8'
)
if
redis_client
.
hget
(
QUERY_KEY
,
query_base64
)
is
not
None
:
value_data
=
json
.
loads
(
redis_client
.
hget
(
QUERY_KEY
,
query_base64
))
...
...
trans2es/type_info.py
View file @
0e753cba
...
...
@@ -538,8 +538,8 @@ def tips_attr_sync_to_redis_type_info_map():
),
TypeInfo
(
name
=
'suggest'
,
type
=
'wordrel_results_num'
,
# api_wordrel
model
=
wordresemble
.
WordRe
l
,
type
=
'wordrel_results_num'
,
# api_wordrel
resemble
model
=
doctor
.
Hospita
l
,
query_deferred
=
lambda
:
wordresemble
.
WordRel
.
objects
.
filter
(
category__in
=
[
13
,
12
,
11
,
9
,
1
])
.
query
,
get_data_func
=
WordResemble
.
get_all_data_name_mapping_results_to_redis
,
...
...
@@ -550,7 +550,7 @@ def tips_attr_sync_to_redis_type_info_map():
TypeInfo
(
name
=
'suggest'
,
type
=
'wordresemble_results_num'
,
# api_wordrelresemble
model
=
wordresemble
.
WordRe
l
,
model
=
doctor
.
Hospita
l
,
query_deferred
=
lambda
:
wordresemble
.
WordRel
.
objects
.
filter
(
category__in
=
[
13
,
12
,
11
,
9
,
1
])
.
query
,
get_data_func
=
WordResemble
.
set_data_to_redis
,
...
...
trans2es/utils/wordresemble.py
View file @
0e753cba
...
...
@@ -88,23 +88,6 @@ class WordResemble(object):
# 获取日记的
WordResemble
.
get_diary_data_name_mapping_results_to_redis
(
instance
)
# 获取该关键词的同义词的数据
query_sql_item
=
wordresemble
.
WordRelResemble
.
objects
.
filter
(
wordrel_id
=
instance
.
id
)
if
query_sql_item
:
for
item
in
query_sql_item
:
instance
.
name
=
item
.
word
# 获取百科的
ItemWikiTransfer
.
get_wiki_data_name_mapping_results_to_redis
(
instance
)
# 获取美购的
TagTransfer
.
get_tag_data_name_mapping_results_to_redis
(
instance
)
# 获取医生医院的
DoctorTransfer
.
get_doctor_data_name_mapping_results_to_redis
(
instance
)
# 获取日记的
WordResemble
.
get_diary_data_name_mapping_results_to_redis
(
instance
)
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
...
...
@@ -170,37 +153,41 @@ class WordResemble(object):
def
set_data_to_redis
(
cls
,
instance
):
try
:
keyword_value
=
[]
QUERY_KEY
=
"query:search_tip"
QUERY_KEY
=
"query:{}:search_tip"
tips_num_redis_key_prefix
=
"search_tips:tips_mapping_num"
query_sql_item
=
wordresemble
.
WordRel
.
objects
.
filter
(
keyword
=
instance
.
keyword
)
for
sql_obj
in
query_sql_item
:
count
=
0
words
=
list
(
sql_obj
.
all_resembles
.
all
()
.
values_list
(
'word'
,
flat
=
True
))
query_base64
=
base64
.
b64encode
(
instance
.
keyword
.
encode
(
'utf8'
))
.
decode
(
'utf8'
)
for
items
in
words
:
count
+=
1
wordresemble_value
=
[]
# 先存储本体词
item_name
=
base64
.
b64encode
(
items
.
encode
(
'utf8'
))
.
decode
(
'utf8'
)
# 获取该同义词的结果
query_base64
=
base64
.
b64encode
(
instance
.
keyword
.
encode
(
'utf8'
))
.
decode
(
'utf8'
)
key
=
QUERY_KEY
.
format
(
query_base64
)
value_name
=
base64
.
b64encode
(
items
.
encode
(
'utf8'
))
.
decode
(
'utf8'
)
# 获取本体词的结果
redis_data
=
redis_client
.
hget
(
tips_num_redis_key_prefix
,
items
)
logging
.
info
(
"get redis_data:
%
s"
%
redis_data
)
redis_val_dict
=
json
.
loads
(
str
(
redis_data
,
encoding
=
"utf-8"
))
if
redis_data
else
{}
total_count
=
0
if
't'
in
redis_val_dict
:
total_count
=
int
(
redis_val_dict
[
't'
])
value
=
{
item_name
:
total_count
}
keyword_value
.
append
(
value
)
# 存储到Redis
value
=
value_name
+
str
(
":"
+
str
(
total_count
))
redis_client
.
sadd
(
key
,
value
)
# 存储近义词
# query_base64 = base64.b64encode(items.encode('utf8')).decode('utf8')
key
=
QUERY_KEY
.
format
(
value_name
)
# value_name = base64.b64encode(wordrm["keyword"].encode('utf8')).decode('utf8')
value_names
=
query_base64
# 获取结果
redis_data
=
redis_client
.
hget
(
tips_num_redis_key_prefix
,
instance
.
keyword
)
redis_val_dict
=
json
.
loads
(
str
(
redis_data
,
encoding
=
"utf-8"
))
if
redis_data
else
{}
total_count
=
0
if
't'
in
redis_val_dict
:
total_count
=
int
(
redis_val_dict
[
't'
])
value
=
{
query_base64
:
total_count
}
wordresemble_value
.
append
(
value
)
if
count
==
1
:
keyword_value
.
append
(
value
)
# 存储结果
value
=
value_names
+
str
(
":"
+
str
(
total_count
))
redis_client
.
sadd
(
key
,
value
)
if
words
:
for
w
in
words
:
value_name_w
=
base64
.
b64encode
(
w
.
encode
(
'utf8'
))
.
decode
(
'utf8'
)
...
...
@@ -209,12 +196,8 @@ class WordResemble(object):
total_count
=
0
if
't'
in
redis_val_dict
:
total_count
=
int
(
redis_val_dict
[
't'
])
value
=
{
value_name_w
:
total_count
}
wordresemble_value
.
append
(
value
)
if
len
(
wordresemble_value
)
>
0
:
redis_client
.
hset
(
QUERY_KEY
,
item_name
,
json
.
dumps
(
wordresemble_value
))
if
len
(
keyword_value
)
>
0
:
redis_client
.
hset
(
QUERY_KEY
,
query_base64
,
json
.
dumps
(
keyword_value
))
value
=
value_name_w
+
str
(
":"
+
str
(
total_count
))
redis_client
.
sadd
(
key
,
value
)
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