同一id下 第一条到最后一条的时间

Elasticsearch | 作者 chenzilong444 | 发布于2018年03月30日 | 阅读数:818

比如
[5728:leave]
[5728:success]
[5728:cancel]
[5729:success]
我想取到5728这个id下第一条到最后一条的时间
最终在kibana成图
已邀请:

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自: chenzilong444 lbx6z

PUT doc_index
{
"mappings": {
"doc": {
"properties":{
"doc_id":{"type":"long"},
"sed_id":{"type":"long"},
"sed_staus":{"type":"keyword"},
"op_times":{"type":"date"}
}
}
}
}

put doc_index/doc/1
{
"doc_id":1,
"sed_id":5728,
"sed_staus":"leave",
"op_times":"2018-03-30T17:15Z"
}


GET doc_index/_mapping

put doc_index/doc/2
{
"doc_id":2,
"sed_id":5728,
"sed_status":"sucess",
"op_times":"2018-03-29T03:52Z"
}

put doc_index/doc/3
{
"doc_id":3,
"sed_id":5728,
"sed_status":"cancel",
"op_times":"2018-03-31T23:08Z"
}


put doc_index/doc/4
{
"doc_id":4,
"sed_id":5729,
"sed_status":"success",
"op_times":"2018-03-31T23:08Z"
}

//取得最小 时间
POST doc_index/_search
{
"query":{
"term":{
"sed_id":5728
}
},
"sort": [
{
"op_times": "desc"
}
],
"aggs":{
"min_time":{
"min":{
"field": "op_times"
}
}
},
"size":0
}
//取得最大 时间
POST doc_index/_search
{
"query":{
"term":{
"sed_id":5728
}
},
"sort": [
{
"op_times": "desc"
}
],
"aggs":{
"max_time":{
"max":{
"field": "op_times"
}
}
},
"size":0
}

strglee - 公众号: 每日ELK ,每天分享ELK相关知识

赞同来自: lbx6z

GET doc_index/_search
{
"query":{
"match_all":{}
},
"aggs": {
"sed_terms": {
"terms": {
"field": "sed_id",
"size": 1000
},
"aggs": {
"min_time": {
"min": {
"field": "op_times"
}
},
"max_time": {
"max": {
"field": "op_times"
}
}
}
}
}
}

strglee - 公众号: 每日ELK ,每天分享ELK相关知识

赞同来自:

这种查询es不支持的,可以用脚本算好时间写入es,然后再kibana成图吧

qvitt

赞同来自:

如果你的id字段唯一,并且开始和结束都有唯一的关键字,那就可以算得开始和结束之间的时长

要回复问题请先登录注册