Kibana脚本字段使用无痛:如何使用预先存在的索引查找经过的天数

o2rvlv0m  于 2022-12-09  发布在  Kibana
关注(0)|答案(1)|浏览(158)

我在Kibana中有一堆数据,我需要通过使用一个带有“painless”的脚本字段来清理这些数据,这是Java的一个版本。目前,我在日志中有一个预先存在的索引,其日期格式为“2021-09- 27 T13:54:17.165Z”我需要找到从那天到今天的天数,无论何时运行此搜索,如果超过或达到300天,则需要返回false,如果其下限为true。
我试着用这个来得到它的天数:new Date().getTime() - doc['date'].value;
我在堆栈溢出上看到有人说new Date().getTime()会给予你今天的日期。但我认为问题是new Date().getTime()的时间格式以1657151078131的格式返回时间,但我的索引日期是“2021-09- 27 T13:54:17.165Z”我不知道如何转换它,以找到少于或多于300天的位移。
任何帮助都将不胜感激

ELK #ElasticSearch#木花#弹性

0lvr5msh

0lvr5msh1#

Tldr;

您在转换所有内容时遇到问题。new Date().getTime()-〉给出一个长型"2021-09-27T13:54:17.165Z"-〉字符串

待求解

你需要把它们移到相同的格式。下面我把string的日期转换成ZonedDateTime,然后再转换成long

new Date().getTime() - ZonedDateTime.parse("2021-09-27T13:54:17.165Z").toInstant().toEpochMilli() > 25920000000L;

这是一种方法。你可以了解更多关于无痛和时间格式here

相关问题