• python操作es增删改查


    1.查询(search)

    # 获取案例库信息
    @app.route('/get_dcn_cases', methods=['GET', 'POST'])
    def get_dcn_cases():
        # 告警事件数据
        dcn_cases_query = {
            "_source": {
                "includes": ["faultName", "endTime", "startTime", "checked", "solution"],
            },
            "sort": {"timestamp": {"order": "desc"}},
            "size": 9999
        }
        res = es.search(index='dcn-cases', body=dcn_cases_query)
        res_hits = res['hits']['hits']
        dcn_cases_data = []
        for i in res_hits:
            i['_source']['id'] = i['_id']
            dcn_cases_data.append(i['_source'])
    
        print("dcn_cases_data:", dcn_cases_data)
        return jsonify({'dcn_cases_data': dcn_cases_data})
    

      2.增加

    # 新增案例库到es里面
    from elasticsearch import helpers
    @app.route('/add_case_to_es', methods=['GET', 'POST'])
    def add_case_to_es():
        # 获取前端传递的案例添加参数
        case_data = request.get_json()
        # 获取系统当前时间
        t = time.time()
        current_ts = int(round(t * 1000))
        # 格式化我们能看懂的时间
        print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(current_ts / 1000)))
        # 格式化es的可以看得懂的时间
        print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime((current_ts / 1000) - 28800)))
    
        case_data["timestamp"] = str(time.strftime('%Y-%m-%dT%H:%M:%S', time.localtime((current_ts / 1000) - 28800)))
        case_data["type"] = "case"
        app.logger.debug('case_data=%s', case_data)
        bulks = []
        _index = 'dcn-cases'
        _type = 'doc'
        bulks.append({
            "_index": _index,
            "_type": _type,
            "_source": case_data
        })
    
        helpers.bulk(es, bulks)
        # res_update = es.index(index='dcn-cases', doc_type='doc',  body=case_data)
        res_update = 1
        return jsonify({'res_update': res_update})
    

      3.删除(根据id来删除)(delete)

    # 删除案例库里面的案例
    @app.route('/del_case_to_es', methods=['GET', 'POST'])
    def del_case_to_es():
        # 获取前端传递的案例添加参数
        del_id_data = request.get_json()
        app.logger.debug('del_id_data=%s', del_id_data)
        app.logger.debug('del_id_data=%s', del_id_data['del_id'])
        res_del = es.delete(index='dcn-cases', doc_type='doc', id=del_id_data['del_id'])
        return jsonify({'res_del': res_del})
    

      4.修改(update)

    # 修改案例库
    @app.route('/update_case_to_es', methods=['GET', 'POST'])
    def update_case_to_es():
        # 获取前端传递的查询参数
        case_data = request.get_json()
        app.logger.debug('case_data=%s', case_data)
        case_id = case_data['case_id']
        # 移除字典中的id信息
        del case_data['case_id']
        res_update = es.update(index='dcn-cases', doc_type='doc', id=case_id, body={"doc": case_data})
        print(res_update['_shards']['successful'])
        return jsonify({'res_update': res_update})
    

      

  • 相关阅读:
    python基础之ATM-2
    python基础之ATM-1
    正则表达式之实战--计算器
    logging模块小知识--同时往不同文件写日志
    re模块详解
    logging模块详解
    hashlib模块
    xml处理模块
    C++ 类的成员函数指针 ( function/bind )
    DirectShow 最简单的入门 -- 播放一段视频
  • 原文地址:https://www.cnblogs.com/GumpYan/p/13158316.html
Copyright © 2020-2023  润新知