elasticsearch keeps by default track of the version of the indexed documents within the _version
field. That means that the first time you index a document it'll get the version 1, and every time you update it its version will be incremented.
It doesn't mean that elasticsearch keeps all the versions of the document.
The version is handy especially if you need to perform optimistic locking. Let's say you get a document and you want to update it, you can make sure you are updating that same version of the document and not other versions that could have been generated by concurrent updates (which might have happened between your get and your update).
You can have a look at this blog to know more and see it in practice.