Агрегирование гистограммы даты Elasticsearch - копирование пропущенных значений в диапазоне с помощью скрипта - PullRequest
0 голосов
/ 04 ноября 2019

Мне нужна помощь в понимании того, как я могу комбинировать скрипты и агрегирование гистограмм дат.

Мои данные выглядят так:

{
  "_id": X,
  "status": "DONE",
  "startDate": "2019-10-20",
  "endDate": "2019-10-21"
}

После обновления элемента (его состояние изменяетсянапример), если в тот же день уже есть документ с startDate - документ будет обновлен. иначе - будет создан новый, а endDate предыдущего будет обновлен.

Я хотел бы создать агрегат, который получит интервал дат и будет возвращать интервал для каждого дня и каждый интервал. будет разделен на 3 подкатегории - по одному на каждый статус (todo, do, done), где я посчитаю количество соответствующих предметов за этот день. Я полагаю, что это будет выглядеть примерно так:

{
  "results": [
    "2019-10-20": {
      "todo": 1,
      "done": 2,
      "doing": 3
    },
    "2019-10-21": {
      "todo": 1,
      "done": 3,
      "doing": 4
    },
    "2019-10-22": {
     "todo": 1,
     "done": 3,
     "doing": 4
     }
  ]
}

Здесь - элемент был завершен в 21.10, поэтому есть один новый документ с startDate 21.10 и пустой endDate, но остальная частьэлементы остаются прежними (новые документы не были добавлены). в 22.10 - ничего не произошло, поэтому данные такие же, как и для 21.

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

Заранее большое спасибо!

...