代码!

from string import Template from bottle import route, run, template, request from create_index.ElSearchFactory import ElSearchFactory client = ElSearchFactory.get_client() queryTemp = Template(""" { "from": 0, "size": 10, "query": { "more_like_this": { "fields": [ "title" ], "like": [ "${q}" ], "min_doc_freq": 1, "min_term_freq": 1 } } } """) class ResponseResult: @staticmethod def error(msg): return { 'msg': msg, 'status': 'error' } def get_type(type_str: str): prefix = 'resources-'
    if type_str == 'hotel' or type_str == 'scenic': return prefix + type_str else: return None @route('/<index_type>/like') def like(index_type: str): q = request.query.q el_type = get_type(index_type) if el_type is None: return ResponseResult.error("参数错误") query = queryTemp.substitute(q=q) q = client.search(el_type, body=query) q = q['hits']['hits'] result_list = [] for it in q: result_list.append( it['_source'] ) # bottle 只能将字典转 json !! 所以只能返回字典
    return { 'status': 'success', 'data': result_list } @route('/<index_type>/match') def match(index_type: str, q: str): q = request.query.q el_type = get_type(index_type) if el_type is None: return ResponseResult.error("参数错误") return q if __name__ == '__main__': run(host='0.0.0.0', port='7000')

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄