Безболезненно: получите разницу во времени - PullRequest
0 голосов
/ 06 ноября 2018

Я очень плохо знаком с Безболезненным. Я хочу написать простой скрипт, чтобы получить разницу во времени между @timestamp и T1 в миллисекундах.

Я пытался использовать doc ['somefield']. Value и doc ['somefield']. Date.millis, и у меня есть доступ к @ timestamp , но не T1,

Любая помощь будет высоко оценена! Я разместил образец источника данных ниже:

{
  "_source": {
    "@timestamp": "2018-11-06T00:20:08.802Z",
     "fields": {
      "T1": "2018-11-06T00:20:07.862Z",
    }
  }

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Вы можете определить начальные и конечные значения и вернуть разницу:

def start = doc['start_event'].date.getMillis();
def stop = doc['stop_event'].date.getMillis();
return stop - start;

введите описание изображения здесь

0 голосов
/ 06 ноября 2018

Вы можете создать поле сценария, которое будет возвращать разницу между @timestamp и fields.T1, например:

POST your-index/_search
{
  "script_fields": {
    "diff": {
      "script": {
        "source": """
          def ts = Instant.parse(params._source['@timestamp']);
          def t1 = Instant.parse(params._source.fields.T1);
          return ChronoUnit.MICROS.between(ts, t1);

        """
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...