If you want to store data in the most efficient and compact way in Elasticsearch, you should exclude those fields which contain them from source:
https://www.elastic.co/guide/en/elasticsearch/reference/5.5/mapping-source-field.html
The problem is currently you can't get your data back with the doc APIs, only with search.
I wonder how many think that using doc values for storing and getting data (in native format, meaning: in the most compact way) is a worthy addition to Elasticsearch.
If you would like to have this, please place a thumbs up on this issue (also, there are some simple examples on how much space can be saved by using it):
and share your thoughts about it.
Hopefully this will help to form an RFC on how should be this done nicely.