cssjshtml vue直接调用elasticsearch接口
- 2019 年 10 月 25 日
- 笔记
es query查询
es同一字段多条件合并查询:
{ "query":{ "bool":{ "must":{ "bool":{ "must":[ { "match_phrase":{ "message":"request" } }, { "match_phrase":{ "message":this.openid } } ] } } } }, "_source":[ "message", "@timestamp" ] }
axios调用es接口认证解决方法
通过headers中设置:Authorization 来通过验证,Authorization通过正常登陆页面后在headers中获取。此方法牺牲了安全。
JSON.parse(jsonstr):用来解析json字符串,转为json对象。 json.hasOwnProperty(key):用来判断json中是否有此key。
axios.post(es_url, es_data, { headers: { 'Authorization': 'Basic ********', 'Content-Type': 'application/json' } } ).then((res) => { res.data.hits.hits.forEach(function (item, index) { let message = JSON.parse(item['_source']['message'].substring(12)) console.log(message) let path = '' let globalticket = '' let body = '' if (message.hasOwnProperty("path")) { path = message['path'] } if (message.hasOwnProperty('url')) { path = message['url'] } if (message.hasOwnProperty('headers')) { globalticket = '*******=' + message['headers']['globalticket'] } if (message.hasOwnProperty('body')) { body = JSON.stringify(message['body']) } messsages.push({ "path": path, "globalticket": globalticket, "body": body, "timestamp": item['_source']['@timestamp'] }) }) })
表格设置:
表格内内嵌跳转链接:
<template slot-scope="scope"> <a :href="'http://'+scope.row.globalticket" target="_blank" class="buttonText">{{scope.row.globalticket.split('=')[1]}}</a> </template>
超长隐藏:
<el-table-column
prop="body"
label="body" :show-overflow-tooltip="true">
<el-table :data="tableData" style="width: 100%"> <el-table-column width="240" sortable prop="timestamp" label="timestamp"> </el-table-column> <el-table-column width="500" prop="path" label="path"> </el-table-column> <el-table-column width="500" prop="globalticket" label="globalticket" :show-overflow-tooltip="true"> <template slot-scope="scope"> <a :href="'http://'+scope.row.globalticket" target="_blank" class="buttonText">{{scope.row.globalticket.split('=')[1]}}</a> </template> </el-table-column> <el-table-column prop="body" label="body" :show-overflow-tooltip="true"> </el-table-column> </el-table>