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
a85e876d
Commit
a85e876d
authored
Jun 05, 2019
by
lixiaofang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
best_answer
parent
d10679b7
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
79 additions
and
52 deletions
+79
-52
cache.py
libs/cache.py
+3
-2
__init__.pyc
search_tips/__init__.pyc
+0
-0
settings.pyc
search_tips/settings.pyc
+0
-0
settings_local.py
search_tips/settings_local.py
+32
-8
wordresemble.py
trans2es/models/wordresemble.py
+0
-12
type_info.py
trans2es/type_info.py
+7
-2
doctor_transfer.py
trans2es/utils/doctor_transfer.py
+21
-18
itemwiki_transfer.py
trans2es/utils/itemwiki_transfer.py
+3
-0
wordresemble.py
trans2es/utils/wordresemble.py
+13
-10
No files found.
libs/cache.py
View file @
a85e876d
...
@@ -3,5 +3,7 @@
...
@@ -3,5 +3,7 @@
import
redis
import
redis
from
django.conf
import
settings
from
django.conf
import
settings
import
logging
redis_client
=
redis
.
StrictRedis
.
from_url
(
settings
.
REDIS_URL
)
logging
.
info
(
"get settings.REDIS_URL:
%
s"
%
settings
.
REDIS_URL
)
\ No newline at end of file
redis_client
=
redis
.
StrictRedis
.
from_url
(
settings
.
REDIS_URL
)
search_tips/__init__.pyc
View file @
a85e876d
No preview for this file type
search_tips/settings.pyc
View file @
a85e876d
No preview for this file type
search_tips/settings_local.py
View file @
a85e876d
...
@@ -16,16 +16,26 @@ CELERY_BROKER_URL = "redis://127.0.0.1:6379/8"
...
@@ -16,16 +16,26 @@ CELERY_BROKER_URL = "redis://127.0.0.1:6379/8"
DATABASES
=
{
DATABASES
=
{
'default'
:
{
'default'
:
{
'ENGINE'
:
'django.db.backends.mysql'
,
# 'ENGINE': 'django.db.backends.mysql',
# 'NAME': 'zhengxing_test',
# 'USER': 'work',
# 'PASSWORD': 'workwork',
# 'HOST': 'rdsmaqevmuzj6jy.mysql.rds.aliyuncs.com',
# 'PORT': '',
# 'OPTIONS': {
# "init_command": "SET foreign_key_checks = 0;",
# "charset": "utf8mb4",
# }
'ENGINE'
:
'django.db.backends.mysql'
,
# 设置为mysql数据库
'NAME'
:
'zhengxing_test'
,
'NAME'
:
'zhengxing_test'
,
'USER'
:
'work'
,
'USER'
:
'work'
,
'PASSWORD'
:
'
workwork
'
,
'PASSWORD'
:
'
Gengmei1
'
,
'HOST'
:
'r
dsmaqevmuzj6jy
.mysql.rds.aliyuncs.com'
,
'HOST'
:
'r
m-2ze0v6uua2hl9he8edo
.mysql.rds.aliyuncs.com'
,
'PORT'
:
''
,
'PORT'
:
'
3306
'
,
'OPTIONS'
:
{
'OPTIONS'
:
{
"init_command"
:
"SET foreign_key_checks = 0;"
,
"init_command"
:
"SET foreign_key_checks = 0;"
,
"charset"
:
"utf8mb4"
,
"charset"
:
"utf8mb4"
,
# 为了支持emoji表情
}
}
,
},
},
'bran'
:
{
'bran'
:
{
'ENGINE'
:
'django.db.backends.mysql'
,
# 设置为mysql数据库
'ENGINE'
:
'django.db.backends.mysql'
,
# 设置为mysql数据库
...
@@ -41,16 +51,30 @@ DATABASES = {
...
@@ -41,16 +51,30 @@ DATABASES = {
}
}
}
}
# ES_INFO_LIST = [
# {
# "host": "101.200.54.249",
# "port": 9200
# }
# ]
#
# GM_ORI_ES_INFO_LIST = [
# {
# "host": "101.200.54.249",
# "port": 9200
# }
# ]
ES_INFO_LIST
=
[
ES_INFO_LIST
=
[
{
{
"host"
:
"1
01.200.54.249
"
,
"host"
:
"1
27.0.0.1
"
,
"port"
:
9200
"port"
:
9200
}
}
]
]
GM_ORI_ES_INFO_LIST
=
[
GM_ORI_ES_INFO_LIST
=
[
{
{
"host"
:
"1
01.200.54.249
"
,
"host"
:
"1
27.0.0.1
"
,
"port"
:
9200
"port"
:
9200
}
}
]
]
...
...
trans2es/models/wordresemble.py
View file @
a85e876d
...
@@ -37,15 +37,3 @@ class WordRelResemble(models.Model):
...
@@ -37,15 +37,3 @@ class WordRelResemble(models.Model):
wordrel
=
models
.
ForeignKey
(
WordRel
,
related_name
=
'all_resembles'
)
wordrel
=
models
.
ForeignKey
(
WordRel
,
related_name
=
'all_resembles'
)
word
=
models
.
CharField
(
u'近义词'
,
max_length
=
50
,
db_index
=
True
)
word
=
models
.
CharField
(
u'近义词'
,
max_length
=
50
,
db_index
=
True
)
class
WordRelSynonym
(
models
.
Model
):
"""
同义词数据表
"""
class
Meta
:
app_label
=
"api"
db_table
=
"api_wordrelsynonym"
wordrel
=
models
.
ForeignKey
(
WordRel
,
related_name
=
'all_resembles'
)
word
=
models
.
CharField
(
u'同义词'
,
max_length
=
50
,
db_index
=
True
)
trans2es/type_info.py
View file @
a85e876d
...
@@ -136,10 +136,15 @@ class TypeInfo(object):
...
@@ -136,10 +136,15 @@ class TypeInfo(object):
))
))
continue
continue
data
=
self
.
get_data_func
(
instance
)
data
=
self
.
get_data_func
(
instance
)
(
item_dict
,
suggest_list
)
=
data
logging
.
info
(
"get-------------item_dict:
%
s"
%
item_dict
[
'tips_name_type'
])
logging
.
info
(
"get-------------item_dict:
%
s"
%
suggest_list
)
if
item_dict
[
"tips_name_type"
]
==
4
:
instance
.
name
=
instance
.
keyword
resemble_list
=
WordResemble
.
get_word_resemble_list
(
str
(
instance
.
name
))
resemble_list
=
WordResemble
.
get_word_resemble_list
(
str
(
instance
.
name
))
(
item_dict
,
suggest_list
)
=
data
for
suggest_item
in
suggest_list
:
for
suggest_item
in
suggest_list
:
suggest_dict
=
copy
.
deepcopy
(
item_dict
)
suggest_dict
=
copy
.
deepcopy
(
item_dict
)
suggest_dict
[
"suggest_type"
]
=
suggest_item
[
"suggest_type"
]
suggest_dict
[
"suggest_type"
]
=
suggest_item
[
"suggest_type"
]
...
@@ -358,7 +363,7 @@ def get_type_info_map():
...
@@ -358,7 +363,7 @@ def get_type_info_map():
TypeInfo
(
TypeInfo
(
name
=
'suggest'
,
name
=
'suggest'
,
type
=
'wordrel_tips'
,
# tag
type
=
'wordrel_tips'
,
# tag
model
=
tag
.
Tag
,
model
=
wordresemble
.
WordRel
,
query_deferred
=
lambda
:
wordresemble
.
WordRel
.
objects
.
all
()
.
query
,
query_deferred
=
lambda
:
wordresemble
.
WordRel
.
objects
.
all
()
.
query
,
get_data_func
=
WordResemble
.
get_resemble_list
,
get_data_func
=
WordResemble
.
get_resemble_list
,
bulk_insert_chunk_size
=
100
,
bulk_insert_chunk_size
=
100
,
...
...
trans2es/utils/doctor_transfer.py
View file @
a85e876d
...
@@ -4,15 +4,15 @@ import os
...
@@ -4,15 +4,15 @@ import os
import
sys
import
sys
import
logging
import
logging
import
traceback
import
traceback
from
libs.tools
import
tzlc
,
getMd5Digest
from
libs.tools
import
tzlc
,
getMd5Digest
from
libs.es
import
ESPerform
from
libs.es
import
ESPerform
from
libs.cache
import
redis_client
from
libs.cache
import
redis_client
import
json
import
json
from
django.conf
import
settings
from
django.conf
import
settings
from
trans2es.commons.commons
import
get_tips_suggest_list
from
trans2es.commons.commons
import
get_tips_suggest_list
from
trans2es.commons.words_utils
import
QueryWordAttr
,
get_tips_word_type
from
trans2es.commons.words_utils
import
QueryWordAttr
,
get_tips_word_type
class
DoctorTransfer
(
object
):
class
DoctorTransfer
(
object
):
...
@@ -20,14 +20,15 @@ class DoctorTransfer(object):
...
@@ -20,14 +20,15 @@ class DoctorTransfer(object):
def
get_doctor_data_name_mapping_results_to_redis
(
cls
,
instance
):
def
get_doctor_data_name_mapping_results_to_redis
(
cls
,
instance
):
try
:
try
:
doctor_name
=
instance
.
name
.
strip
()
doctor_name
=
instance
.
name
.
strip
()
if
doctor_name
:
if
doctor_name
:
multi_fields
=
{
multi_fields
=
{
'hospital.city_province_name'
:
1
,
'hospital.city_province_name'
:
1
,
'hospital.name'
:
1
,
'hospital.name'
:
1
,
'name'
:
1
,
'name'
:
1
,
'hospital.city_name'
:
1
,
'hospital.city_name'
:
1
,
'hospital.officer_name'
:
1
,
'hospital.officer_name'
:
1
,
'service_closure_tags'
:
1
'service_closure_tags'
:
1
}
}
query_fields
=
[
'^'
.
join
((
k
,
str
(
v
)))
for
(
k
,
v
)
in
multi_fields
.
items
()]
query_fields
=
[
'^'
.
join
((
k
,
str
(
v
)))
for
(
k
,
v
)
in
multi_fields
.
items
()]
multi_match
=
{
multi_match
=
{
...
@@ -39,12 +40,12 @@ class DoctorTransfer(object):
...
@@ -39,12 +40,12 @@ class DoctorTransfer(object):
q
=
{
q
=
{
"size"
:
0
,
"size"
:
0
,
"query"
:{
"query"
:
{
"bool"
:{
"bool"
:
{
"should"
:[
"should"
:
[
{
"multi_match"
:
multi_match
}
{
"multi_match"
:
multi_match
}
],
],
"must"
:[
"must"
:
[
{
"term"
:
{
"is_online"
:
True
}}
{
"term"
:
{
"is_online"
:
True
}}
],
],
"minimum_should_match"
:
1
"minimum_should_match"
:
1
...
@@ -52,14 +53,16 @@ class DoctorTransfer(object):
...
@@ -52,14 +53,16 @@ class DoctorTransfer(object):
}
}
}
}
result_dict
=
ESPerform
.
get_search_results
(
ESPerform
.
get_cli
(
settings
.
GM_ORI_ES_INFO_LIST
),
sub_index_name
=
"doctor"
,
doc_type
=
"doctor"
,
query_body
=
q
,
offset
=
0
,
size
=
0
)
result_dict
=
ESPerform
.
get_search_results
(
ESPerform
.
get_cli
(
settings
.
GM_ORI_ES_INFO_LIST
),
sub_index_name
=
"doctor"
,
doc_type
=
"doctor"
,
query_body
=
q
,
offset
=
0
,
size
=
0
)
doctor_results
=
result_dict
[
"total_count"
]
doctor_results
=
result_dict
[
"total_count"
]
redis_key_prefix
=
"search_tips:tips_mapping_num"
redis_key_prefix
=
"search_tips:tips_mapping_num"
redis_data
=
redis_client
.
hget
(
redis_key_prefix
,
doctor_name
)
redis_data
=
redis_client
.
hget
(
redis_key_prefix
,
doctor_name
)
redis_val_dict
=
json
.
loads
(
str
(
redis_data
,
encoding
=
"utf-8"
))
if
redis_data
else
{}
redis_val_dict
=
json
.
loads
(
str
(
redis_data
,
encoding
=
"utf-8"
))
if
redis_data
else
{}
total_count
=
doctor_results
total_count
=
doctor_results
if
't'
in
redis_val_dict
:
if
't'
in
redis_val_dict
:
...
@@ -68,12 +71,12 @@ class DoctorTransfer(object):
...
@@ -68,12 +71,12 @@ class DoctorTransfer(object):
redis_val_dict
[
't'
]
=
total_count
redis_val_dict
[
't'
]
=
total_count
redis_val_dict
[
'd'
]
=
doctor_results
redis_val_dict
[
'd'
]
=
doctor_results
logging
.
info
(
"duan add,redis_key_prefix:
%
s,redis_val_dict:
%
s"
%
(
str
(
redis_key_prefix
),
str
(
redis_val_dict
)))
logging
.
info
(
redis_client
.
hset
(
redis_key_prefix
,
doctor_name
,
json
.
dumps
(
redis_val_dict
))
"duan add,redis_key_prefix:
%
s,redis_val_dict:
%
s"
%
(
str
(
redis_key_prefix
),
str
(
redis_val_dict
)))
redis_client
.
hset
(
redis_key_prefix
,
doctor_name
,
json
.
dumps
(
redis_val_dict
))
except
:
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
@classmethod
@classmethod
def
get_doctor_suggest_data_list
(
cls
,
instance
):
def
get_doctor_suggest_data_list
(
cls
,
instance
):
try
:
try
:
...
@@ -94,7 +97,7 @@ class DoctorTransfer(object):
...
@@ -94,7 +97,7 @@ class DoctorTransfer(object):
suggest_list
=
get_tips_suggest_list
(
instance
.
name
)
suggest_list
=
get_tips_suggest_list
(
instance
.
name
)
return
(
item_dict
,
suggest_list
)
return
(
item_dict
,
suggest_list
)
except
:
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
([],[])
return
([],
[])
trans2es/utils/itemwiki_transfer.py
View file @
a85e876d
...
@@ -76,6 +76,9 @@ class ItemWikiTransfer(object):
...
@@ -76,6 +76,9 @@ class ItemWikiTransfer(object):
redis_client
.
hset
(
redis_key_prefix
,
wiki_name
,
json
.
dumps
(
redis_val_dict
))
redis_client
.
hset
(
redis_key_prefix
,
wiki_name
,
json
.
dumps
(
redis_val_dict
))
logging
.
info
(
"get ----------------------get "
)
except
:
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
...
...
trans2es/utils/wordresemble.py
View file @
a85e876d
...
@@ -44,16 +44,16 @@ class WordResemble(object):
...
@@ -44,16 +44,16 @@ class WordResemble(object):
ret_list
=
list
()
ret_list
=
list
()
item_dict
=
dict
()
item_dict
=
dict
()
item_dict
[
"id"
]
=
getMd5Digest
(
str
(
instance
.
word
))
item_dict
[
"id"
]
=
getMd5Digest
(
str
(
instance
.
key
word
))
item_dict
[
"ori_name"
]
=
instance
.
word
item_dict
[
"ori_name"
]
=
instance
.
key
word
item_dict
[
"is_online"
]
=
True
item_dict
[
"is_online"
]
=
True
item_dict
[
"order_weight"
]
=
QueryWordAttr
.
get_project_query_word_weight
(
instance
.
name
)
item_dict
[
"order_weight"
]
=
QueryWordAttr
.
get_project_query_word_weight
(
instance
.
keyword
)
item_dict
[
"results_num"
]
=
QueryWordAttr
.
get_query_results_num
(
instance
.
name
)
item_dict
[
"results_num"
]
=
QueryWordAttr
.
get_query_results_num
(
instance
.
keyword
)
item_dict
[
"type_flag"
]
=
get_tips_word_type
(
instance
.
name
)
item_dict
[
"type_flag"
]
=
get_tips_word_type
(
instance
.
keyword
)
item_dict
[
"offline_score"
]
=
0.0
item_dict
[
"offline_score"
]
=
0.0
item_dict
[
"tips_name_type"
]
=
4
item_dict
[
"tips_name_type"
]
=
4
ret_list
.
append
(
item_dict
)
ret_list
.
append
(
item_dict
)
suggest_list
=
get_tips_suggest_list
(
instance
.
name
)
suggest_list
=
get_tips_suggest_list
(
instance
.
keyword
)
return
(
item_dict
,
suggest_list
)
return
(
item_dict
,
suggest_list
)
except
:
except
:
...
@@ -66,7 +66,8 @@ class WordResemble(object):
...
@@ -66,7 +66,8 @@ class WordResemble(object):
@classmethod
@classmethod
def
get_all_data_name_mapping_results_to_redis
(
cls
,
instance
):
def
get_all_data_name_mapping_results_to_redis
(
cls
,
instance
):
try
:
try
:
total_count
=
0
instance
.
name
=
instance
.
keyword
# 获取百科的
# 获取百科的
ItemWikiTransfer
.
get_wiki_data_name_mapping_results_to_redis
(
instance
)
ItemWikiTransfer
.
get_wiki_data_name_mapping_results_to_redis
(
instance
)
...
@@ -87,6 +88,7 @@ class WordResemble(object):
...
@@ -87,6 +88,7 @@ class WordResemble(object):
try
:
try
:
tips_num_redis_key_prefix
=
"search_tips:tips_mapping_num"
tips_num_redis_key_prefix
=
"search_tips:tips_mapping_num"
tag_name
=
instance
.
name
.
strip
()
tag_name
=
instance
.
name
.
strip
()
q
=
dict
()
q
=
dict
()
if
tag_name
:
if
tag_name
:
...
@@ -128,11 +130,12 @@ class WordResemble(object):
...
@@ -128,11 +130,12 @@ class WordResemble(object):
redis_val_dict
=
json
.
loads
(
str
(
redis_data
,
encoding
=
"utf-8"
))
if
redis_data
else
{}
redis_val_dict
=
json
.
loads
(
str
(
redis_data
,
encoding
=
"utf-8"
))
if
redis_data
else
{}
total_count
=
doctor_results
total_count
=
doctor_results
if
's'
in
redis_val_dict
:
total_count
+=
int
(
redis_val_dict
[
's'
])
if
't'
in
redis_val_dict
:
total_count
+=
int
(
redis_val_dict
[
't'
])
redis_val_dict
[
't'
]
=
total_count
redis_val_dict
[
't'
]
=
total_count
redis_val_dict
[
'
s
'
]
=
doctor_results
redis_val_dict
[
'
r
'
]
=
doctor_results
redis_client
.
hset
(
tips_num_redis_key_prefix
,
tag_name
,
json
.
dumps
(
redis_val_dict
))
redis_client
.
hset
(
tips_num_redis_key_prefix
,
tag_name
,
json
.
dumps
(
redis_val_dict
))
except
:
except
:
...
...
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