Is there any better way in elasticsearch (other than issuing a match all query and manually averaging over the length of all returned documents) to get the average document length for a specific index?
The _size mapping field, if enabled, should give you the size of each document for free.  Combining this with the avg aggregation should get you what you want.  Something like:
{
  "query" : {"match_all" : {}},
  "aggs" : {"avg_size" : {"avg" : {"terms" : {"field" : "_size"}}}}
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With