Efficient date difference at document upsert

I would like to make thousands of upsert and computing a time difference between the document already indexed (not with a time-based key but with an id key) and an already stored date, so I can tell what was the last time between two connections.

I would like to do something like this in my script:
ctx._source.diffdate = params.infodate.epoch_second - ctx._source.lastinfodate.epoch_second

Where params.infodate contains the latest timestamp and the ctx._source.lastinfodate contains the former latest timestamp.

In the mapping, the lastinfodate is known as a Date but, in the script, it is known as a String, so I can't access epoch_second method.
"reason" : "Unable to find dynamic field [epoch_second] for class [java.lang.String]."

I would like to load the field directly as a number in the script to do the difference. Doing "string to date" conversion in the script would result in an non-affordable CPU time.

How can I do it?

Well, at the injection I used a timestamp conversion in integer so I do arithmetics.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.