I have a device that can exist in multiple states (more than 2). Lets say it can exist in state1, state2, state3 and state4
I have a document that stores the timestamp of each state
{
state1: time
state3: time + 10
state2: time + 20
state4: time + 40
}
From the above document the duration of state1 is state3 - state1
Duration of state3 is state2 - state3
I want to calculate the aggregate duration of each state from multiple such documents. But the order in which the timestamps occur may not be the same.
I basically want to calculate the duration of one state using the timestamp of the next state.
How do I do such aggregation in elasticsearch?