1. 程式人生 > >node操作es的查詢語句

node操作es的查詢語句

exports.getIPSList=function (req, res, next){

    //定義變數
    var objELkRequestBody= new ELk_requestbody.ELK_RequestBody();

    //接受並響應
    objELkRequestBody.RequestParamAnalysis(req,res,next);

    //設定查詢的庫和表
    objELkRequestBody.SetESIndex("ssa_envents*").SetESType("nsec");

    //設定精準查詢
    objELkRequestBody.SetQueryKey(                                                        //設定精確查詢
        {
            "program":"IPS"
        }
    );

    //精準查詢
    if(req.query.search){
        objELkRequestBody.SetQueryKey(req.query.search)
    }
    //設定排序
    if(req.query.sort)
        objELkRequestBody.SetSortField(req.query.sort);                                  //設定排序
    objELkRequestBody.SetSortField({"@timestamp":"desc"});                              // 預設按照時間戳排序

    //設定分頁查詢
    objELkRequestBody.SetPagingCfg(req.query.page,req.query.size);                      //設定分頁

    //設定時間範圍
    objELkRequestBody.SetTimeRange( req.query.begTime,req.query.endTime);              //設定時間範圍

    //模糊查詢 查詢體
    if(req.query.search){
        objELkRequestBody.SetQueryString(req.query.search);                             //設定模糊查詢
    }

//查詢完成以後進行封裝傳送給前臺
    //傳送請求獲得響應體並封裝
    objELkRequestBody.SendELKRequest(req,res, function (err, resp){

        //如果有錯誤的話就列印錯誤
        if (err) { console.trace(err.message);}

        //否則就輸出
        else {
            //console.log(JSON.stringify(result));
            if (resp.hits.hits.length <= 0){
                var logUtil = require('../../../tools/LogUtil');
                return logUtil.getLatestLog(req, res, objELkRequestBody);
            }
            var res_data = config.res_data(0);
            var hits = resp.hits.hits;
            res_data.data.total = resp.hits.total;
            var data =  [];
            for(var i in hits){
                data.push(hits[i])
            }
            res_data.data.rows = data;
            config.cr_res_json( req, res,res_data);
        }
    });
};

裡邊涉及到模糊查詢與精準查詢