如何通过ES取出若干数据中时间最大的数据?

es难题。ES经过条件搜索后同一事件有多种状态,以最后一次状态为准,但是怎么取出这些数据呢?
例如:经过条件筛选后查出如下数据

 编号       数据         时间            状态
  1          a         20190711            0
  2          a         20190712            2
  3          a         20190713            1
  4          b         20190711            0
  5          b         20190712            3
  6          b         20190714            2

最后应该取出的数据是

  3          a         20190713            1
  6          b         20190714            2

因为这两条的数据状态是最新的。
可用java语言或表达式回答。