Разница между результатом двух полей даты и получением среднего - PullRequest
0 голосов
/ 20 июня 2019

Я рассчитываю получить среднее значение разницы между двумя различными полями в эластичной БД, я смог написать запрос, чтобы получить результаты за последние 1000 результатов, однако я не уверен, как мне добиться разницы между каждый результат затем получает общее среднее значение.

Эластичный запрос ниже:

POST my_index/_search
{
  "size":1000,
  "_source": ["date.time.received","date.time.sent"],
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "date.time.received": {
              "gte": "2019-06-19"
            }
          }
        },
        {
          "range": {
            "date.time.sent": {
              "gte": "2019-06-19"
            }
          }
        }
      ]
    }
  }
}

1 Ответ

0 голосов
/ 21 июня 2019

Я использую среднюю агрегацию и скрипт

POST testindex5/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "date.time.received": {
              "gte": "2019-06-19"
            }
          }
        },
        {
          "range": {
            "date.time.sent": {
              "gte": "2019-06-19"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "avg_resp": {
      "avg": {
        "script": "(doc['date.time.received'].value.toInstant().toEpochMilli()- doc['date.time.sent'].value.toInstant().toEpochMilli())/1000/86400"  ---> convert to days
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...