Commit a85e876d authored by lixiaofang's avatar lixiaofang

best_answer

parent d10679b7
......@@ -3,5 +3,7 @@
import redis
from django.conf import settings
import logging
redis_client = redis.StrictRedis.from_url(settings.REDIS_URL)
\ No newline at end of file
logging.info("get settings.REDIS_URL:%s" % settings.REDIS_URL)
redis_client = redis.StrictRedis.from_url(settings.REDIS_URL)
No preview for this file type
No preview for this file type
......@@ -16,16 +16,26 @@ CELERY_BROKER_URL = "redis://127.0.0.1:6379/8"
DATABASES = {
'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',
'USER': 'work',
'PASSWORD': 'workwork',
'HOST': 'rdsmaqevmuzj6jy.mysql.rds.aliyuncs.com',
'PORT': '',
'PASSWORD': 'Gengmei1',
'HOST': 'rm-2ze0v6uua2hl9he8edo.mysql.rds.aliyuncs.com',
'PORT': '3306',
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
"charset": "utf8mb4",
}
"charset": "utf8mb4", # 为了支持emoji表情
},
},
'bran': {
'ENGINE': 'django.db.backends.mysql', # 设置为mysql数据库
......@@ -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 = [
{
"host": "101.200.54.249",
"host": "127.0.0.1",
"port": 9200
}
]
GM_ORI_ES_INFO_LIST = [
{
"host": "101.200.54.249",
"host": "127.0.0.1",
"port": 9200
}
]
......
......@@ -37,15 +37,3 @@ class WordRelResemble(models.Model):
wordrel = models.ForeignKey(WordRel, related_name='all_resembles')
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)
......@@ -136,10 +136,15 @@ class TypeInfo(object):
))
continue
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))
(item_dict, suggest_list) = data
for suggest_item in suggest_list:
suggest_dict = copy.deepcopy(item_dict)
suggest_dict["suggest_type"] = suggest_item["suggest_type"]
......@@ -358,7 +363,7 @@ def get_type_info_map():
TypeInfo(
name='suggest',
type='wordrel_tips', # tag
model=tag.Tag,
model=wordresemble.WordRel,
query_deferred=lambda: wordresemble.WordRel.objects.all().query,
get_data_func=WordResemble.get_resemble_list,
bulk_insert_chunk_size=100,
......
......@@ -4,15 +4,15 @@ import os
import sys
import logging
import traceback
from libs.tools import tzlc,getMd5Digest
from libs.tools import tzlc, getMd5Digest
from libs.es import ESPerform
from libs.cache import redis_client
import json
from django.conf import settings
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):
......@@ -20,14 +20,15 @@ class DoctorTransfer(object):
def get_doctor_data_name_mapping_results_to_redis(cls, instance):
try:
doctor_name = instance.name.strip()
if doctor_name:
multi_fields = {
'hospital.city_province_name': 1,
'hospital.name': 1,
'name': 1,
'hospital.city_name':1,
'hospital.officer_name':1,
'service_closure_tags':1
'hospital.city_name': 1,
'hospital.officer_name': 1,
'service_closure_tags': 1
}
query_fields = ['^'.join((k, str(v))) for (k, v) in multi_fields.items()]
multi_match = {
......@@ -39,12 +40,12 @@ class DoctorTransfer(object):
q = {
"size": 0,
"query":{
"bool":{
"should":[
"query": {
"bool": {
"should": [
{"multi_match": multi_match}
],
"must":[
"must": [
{"term": {"is_online": True}}
],
"minimum_should_match": 1
......@@ -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"]
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
if 't' in redis_val_dict:
......@@ -68,12 +71,12 @@ class DoctorTransfer(object):
redis_val_dict['t'] = total_count
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)))
redis_client.hset(redis_key_prefix,doctor_name, json.dumps(redis_val_dict))
logging.info(
"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:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
@classmethod
def get_doctor_suggest_data_list(cls, instance):
try:
......@@ -94,7 +97,7 @@ class DoctorTransfer(object):
suggest_list = get_tips_suggest_list(instance.name)
return (item_dict,suggest_list)
return (item_dict, suggest_list)
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return ([],[])
return ([], [])
......@@ -76,6 +76,9 @@ class ItemWikiTransfer(object):
redis_client.hset(redis_key_prefix, wiki_name, json.dumps(redis_val_dict))
logging.info("get ----------------------get ")
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
......
......@@ -44,16 +44,16 @@ class WordResemble(object):
ret_list = list()
item_dict = dict()
item_dict["id"] = getMd5Digest(str(instance.word))
item_dict["ori_name"] = instance.word
item_dict["id"] = getMd5Digest(str(instance.keyword))
item_dict["ori_name"] = instance.keyword
item_dict["is_online"] = True
item_dict["order_weight"] = QueryWordAttr.get_project_query_word_weight(instance.name)
item_dict["results_num"] = QueryWordAttr.get_query_results_num(instance.name)
item_dict["type_flag"] = get_tips_word_type(instance.name)
item_dict["order_weight"] = QueryWordAttr.get_project_query_word_weight(instance.keyword)
item_dict["results_num"] = QueryWordAttr.get_query_results_num(instance.keyword)
item_dict["type_flag"] = get_tips_word_type(instance.keyword)
item_dict["offline_score"] = 0.0
item_dict["tips_name_type"] = 4
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)
except:
......@@ -66,7 +66,8 @@ class WordResemble(object):
@classmethod
def get_all_data_name_mapping_results_to_redis(cls, instance):
try:
total_count = 0
instance.name = instance.keyword
# 获取百科的
ItemWikiTransfer.get_wiki_data_name_mapping_results_to_redis(instance)
......@@ -87,6 +88,7 @@ class WordResemble(object):
try:
tips_num_redis_key_prefix = "search_tips:tips_mapping_num"
tag_name = instance.name.strip()
q = dict()
if tag_name:
......@@ -128,11 +130,12 @@ class WordResemble(object):
redis_val_dict = json.loads(str(redis_data, encoding="utf-8")) if redis_data else {}
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['s'] = doctor_results
redis_val_dict['r'] = doctor_results
redis_client.hset(tips_num_redis_key_prefix, tag_name, json.dumps(redis_val_dict))
except:
......
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