elasticsearch Kibana中的日期差异脚本化字段,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch Kibana中的日期差异脚本化字段,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch Kibana中的日期差异脚本化字段

elasticsearch Kibana中的日期差异脚本化字段,elasticsearch,kibana,elasticsearch,Kibana,我想用脚本字段找出两个字段之间的区别。以下是两个日期字段及其格式: 开始时间-2018年6月17日09:44:46.000 结束时间-2018年6月17日09:44:49.000 这将提供proc\u时间 以下是我在脚本字段中尝试执行的操作: doc['start\u time'].date.millis-doc['end\u time'].date.millis 但这是返回从历元时间中扣除的处理时间 例如,如果我的处理时间是2秒,那么输出将是纪元时间-2秒。 这不是我想要的 这是示例文档:

我想用脚本字段找出两个字段之间的区别。以下是两个日期字段及其格式:

开始时间-2018年6月17日09:44:46.000
结束时间-2018年6月17日09:44:49.000

这将提供
proc\u时间

以下是我在脚本字段中尝试执行的操作:
doc['start\u time'].date.millis-doc['end\u time'].date.millis
但这是返回从历元时间中扣除的处理时间

例如,如果我的处理时间是2秒,那么输出将是
纪元时间-2秒。
这不是我想要的

这是示例文档:


2018年6月17日04:14:46信息CSG事件文件生成开始时间:2018年6月17日04:14:46 CDT
2018年6月17日04:14:46执行CSG文件生成过程的信息
警告:在命令行界面上使用密码可能不安全。
2018年6月17日04:15:57信息完成时间:2018年6月17日04:15:57 CDT
任何帮助都将不胜感激

更新 我用以下无痛脚本实现了这一点:

((doc['csg_proc_end_time'].date.year)*31536000+doc['csg_proc_end_time']date.monthOfYear*86400+doc['csg_proc_end_time'].date.dayOfMonth*3600+doc['csg_proc_end_time'.date.secondOfDay)-(doc['csg_proc_start_time'.date.year.].date.dayOfMonth*3600+文件['csg\U proc\U start\U time'].date.secondOfDay)

不过,我欢迎任何其他脚本以更简单的方式实现这一点

添加字段的JSON格式:

“字段”:{
“@timestamp”:[
“2018-06-20T04:45:00.258Z”
],
“zimbra_程序时间”:[
0
],
“csg_过程时间”:[
71
],
“性能技术程序时间”:[
0
],
“csg\U程序结束时间”:[
“2018-06-17T04:15:57.000Z”
],
“csg程序开始时间”:[
“2018-06-17T04:14:46.000Z”
]
},

这是我为重现您的问题所做的工作,它工作正常:

PUT test/doc/1
{
  "csg_proc_end_time": "2018-06-17T04:15:57.000Z",
  "csg_proc_start_time": "2018-06-17T04:14:46.000Z"
}
现在在脚本字段中计算处理时间:

GET test/_search
{
  "script_fields": {
    "proc_time": {
      "script": {
        "source": "(doc.csg_proc_end_time.value.millis - doc.csg_proc_start_time.value.millis) / 1000"
      }
    }
  }
}
结果:71秒

{
    "_index": "test",
    "_type": "doc",
    "_id": "1",
    "_score": 1,
    "fields": {
      "proc_time": [
        71
      ]
    }
  }

您可以显示示例文档吗?这是一个多行文档:``2018年6月17日04:14:46信息CSG事件文件生成开始于:Sun Jun 17 04:14:46 CDT 2018年6月17日04:14:46信息执行CSG文件生成过程警告:在命令行界面上使用密码可能不安全。2018年6月17日04:15:57信息完成时间:2018年6月17日04:15:57 CDT``我需要从中找出两个时间值之间的差异我建议您使用该信息更新您的问题,并使其正确可读完成。用我找到的一个解决方案更新了问题。寻找更好的方法,如果有的话。为什么不共享JSON文档而不是原始文本呢?这确实有效。谢谢。我一定是在尝试同样的东西时花了很长时间。酷,很高兴它有帮助!