elasticsearch 弹性搜索中的时间戳差异,elasticsearch,kibana,elastic-stack,elasticsearch,Kibana,Elastic Stack" /> elasticsearch 弹性搜索中的时间戳差异,elasticsearch,kibana,elastic-stack,elasticsearch,Kibana,Elastic Stack" />

elasticsearch 弹性搜索中的时间戳差异

elasticsearch 弹性搜索中的时间戳差异,elasticsearch,kibana,elastic-stack,elasticsearch,Kibana,Elastic Stack,我知道有人问过这一点,但麋鹿似乎变化非常迅速,也许在这一点上有些事情是可能的。 所以,我正在使用Kibana4,并且我试图可视化(或者至少计算)查询中两个文档之间的时间差。 我的文档是批处理的日志,包含很多字段,时间戳就是其中之一(类型为“日期”)。 是否可以使用脚本字段计算查询中连续文档之间的时差?(返回什么类型并不重要) 我希望我说的有道理,我是麋鹿的新手。 提前谢谢 Dauta\u据我所知,在Kibana中不能这样做,因为脚本字段会逐个应用于文档。但是,如果对您来说最重要的是获得计算结果,

我知道有人问过这一点,但麋鹿似乎变化非常迅速,也许在这一点上有些事情是可能的。 所以,我正在使用Kibana4,并且我试图可视化(或者至少计算)查询中两个文档之间的时间差。 我的文档是批处理的日志,包含很多字段,时间戳就是其中之一(类型为“日期”)。 是否可以使用脚本字段计算查询中连续文档之间的时差?(返回什么类型并不重要)

我希望我说的有道理,我是麋鹿的新手。 提前谢谢


Dauta

\u据我所知,在Kibana中不能这样做,因为脚本字段会逐个应用于文档。但是,如果对您来说最重要的是获得计算结果,那么您可以在ES查询中使用脚本化的_度量agregion来实现这一点

我想它看起来像

{
    "sort" : [
        { "mydatefield" : {"order" : "asc"}}
    ],
    "query" : {
        (something of match, range, match_all...)
    },
    "aggregations": {
        "scripted_metric": {
            "init_script": "(declarations, eg :) _agg['myarray']=[]",
            "map_script": (store relevant timestamps in datastructure, eg :) "_ạgg.myarray.add(doc['mydatefield'])",
            "reduce_script": "(aggregate results, eg :) otherarray = [] ; for (x in ạggs){otherarray.putAll(x.myarray)} ;
            (and sort otherarray) ; result = [] ;
           for (i = 0 ; i < otherarray.length-1 ; i++){result.add(otherarray[i+1]-otherarray[i])} ;
           return result ;"
        }
    }
}
{
“排序”:[
{“mydatefield”:{“order”:“asc”}
],
“查询”:{
(匹配的东西、范围、匹配所有…)
},
“聚合”:{
“脚本化度量”:{
“init_script”:(声明,例如:)_agg['myarray']=[],
“映射脚本”:(在数据结构中存储相关时间戳,例如:)”_ạ添加(doc['mydatefield'])”,
“reduce_script”:(聚合结果,例如:)otherarray=[];for(x in.)ạggs){otherarray.putAll(x.myarray)};
(并对其他数组排序);结果=[];
对于(i=0;i
\u据我所知,您不能在Kibana中这样做,因为脚本字段会逐个应用于文档。但是,如果对您来说最重要的是获得计算结果,那么您可以在ES查询中使用脚本化的_度量agregion来实现这一点

我想它看起来像

{
    "sort" : [
        { "mydatefield" : {"order" : "asc"}}
    ],
    "query" : {
        (something of match, range, match_all...)
    },
    "aggregations": {
        "scripted_metric": {
            "init_script": "(declarations, eg :) _agg['myarray']=[]",
            "map_script": (store relevant timestamps in datastructure, eg :) "_ạgg.myarray.add(doc['mydatefield'])",
            "reduce_script": "(aggregate results, eg :) otherarray = [] ; for (x in ạggs){otherarray.putAll(x.myarray)} ;
            (and sort otherarray) ; result = [] ;
           for (i = 0 ; i < otherarray.length-1 ; i++){result.add(otherarray[i+1]-otherarray[i])} ;
           return result ;"
        }
    }
}
{
“排序”:[
{“mydatefield”:{“order”:“asc”}
],
“查询”:{
(匹配的东西、范围、匹配所有…)
},
“聚合”:{
“脚本化度量”:{
“init_script”:(声明,例如:)_agg['myarray']=[],
“映射脚本”:(在数据结构中存储相关时间戳,例如:)”_ạ添加(doc['mydatefield'])”,
“reduce_script”:(聚合结果,例如:)otherarray=[];for(x in.)ạggs){otherarray.putAll(x.myarray)};
(并对其他数组排序);结果=[];
对于(i=0;i
AFAIK脚本化指标适用于同一文档。如果我不理解错了,我想你需要在ES2.0中引入它。我将继续关注这个特性,同时我将尝试其他方法,比如从文档中提取这些信息并进行外部计算。无论如何,谢谢大家的回答。AFAIK脚本化指标适用于同一文档。如果我不理解错了,我想你需要在ES2.0中引入它。我将继续关注这个特性,同时我将尝试其他方法,比如从文档中提取这些信息并进行外部计算。不管怎样,谢谢大家的回答。这确实起到了作用!稍加修改之后。谢谢。很高兴我能帮忙。也许发布你的代码,可能在将来帮助别人。这确实起到了作用!稍加修改之后。谢谢。很高兴我能帮忙。也许发布你的代码,也许将来会帮助别人。