Hmm, interesting results. In your case you have norms and doc_values which decreased greatly. But they are so small (1-2%) in comparison with term_in_memory and stored fields memory. (you can see that memory_in_bytes=sum of other elements except of index writer)
Share some info from my cluster (ES 2.1.0):
"primaries": {
"docs": {
"count": 15471184885,
"deleted": 0
},
"store": {
"size_in_bytes": 1365688947337,
}
...
"segments": {
"count": 864,
"memory_in_bytes": 3622979823,
"terms_memory_in_bytes": 3390816879,
"stored_fields_memory_in_bytes": 232083456,
"term_vectors_memory_in_bytes": 0,
"norms_memory_in_bytes": 0,
"doc_values_memory_in_bytes": 79488,
...
"version_map_memory_in_bytes": 0,
"fixed_bit_set_memory_in_bytes": 0
},
And another index same type:
"primaries": {
"docs": {
"count": 14585838030,
"deleted": 0
},
"store": {
"size_in_bytes": 1310676837479,
},
...
"segments": {
"count": 1039,
"memory_in_bytes": 3463054649,
"terms_memory_in_bytes": 3245432949,
"stored_fields_memory_in_bytes": 217526112,
"term_vectors_memory_in_bytes": 0,
"norms_memory_in_bytes": 0,
"doc_values_memory_in_bytes": 95588,
...
"version_map_memory_in_bytes": 214694604,
"fixed_bit_set_memory_in_bytes": 0
},
In this case more segments but less memory used. I suppose that memory in bytes correlated with doc count (and how unique your indexed fields is).
Maybe in your case some segments shares same terms or something else that duplicates in memory but belongs to different segments. After segment reduction same terms merged and so you have a little gain in memory. But it just my guess.