2016-12-02 2 views
1

Я пытаюсь визуализировать разницу во времени (в часах) между двумя полями даты.Визуализация разницы во времени между двумя полями в Elasticsearch и Kibana

Поля объявляются так:

"fieldname": { 
    "type": "date" 
    }, 

Решение я нашел:

, 
    "script_fields" : { 
    "timedifference" : { 
     "script" : "doc['loading_startTime'].value - doc['startTime'].value" 
    } 
    } 

В результате я получаю выглядит следующим образом:

enter image description here

Я d, чтобы этот номер находился в секундах, минутах или часах, что я делаю Неправильно?

ответ

2

Как насчет этого?

"script_fields" : { 
    "timedifference" : { 
    "script" : "def msDiff = (doc['loading_startTime'].value - doc['startTime'].value); return [msDiff/1000.0, msDiff/60000.0, msDiff/3600000.0]" 
    } 
} 

Это будет возвращать массив со всеми различиями, вам нужно, то есть

"fields": { 
    "timedifference": [ 
     2700,    <-- difference in seconds 
     45,     <-- difference in minutes 
     0.75,    <-- difference in hours 
    ] 
} 
+0

Эй снова, я должен поставить вас на скорости циферблата вы так чертовски быстро! Это, однако, скрывает мои данные, я хотел бы видеть и другие данные. (также, как я могу получить разницу в минутах в kibana) –

+0

Вы можете просто вернуть 'msDiff' в массив, а также получите разницу в миллисекундах. – Val

+0

Жаль, что я не был достаточно ясен. Это возвращает объект «поля», но мне также нужен объект _source. Любой совет для получения этого в Кибане? –

Смежные вопросы