ES indexes the documents exactly as they arrive. It sounds like your problem is that e.g. event82
contains an array rather than an object, but that's really a problem with the source data. If you want you can use Logstash to transform the input to this:
"events" : {
"event82" : {
"count" : 1,
"exponent" : 0,
"unique" : ""
},
"event30" : {
"count" : 1,
"exponent" : 0,
"unique" : ""
},
...
There's no standard filter for doing that transformation but you can write Ruby code in a ruby filter to do it.