I have an index and want to get a count for the entries in every type of one particular index in elasticsearch, but might not know the types ahead of time.
So, for example, the index is
/events
and the types could be
/events/type1
/events/type2
...
/events/typeN
And I'd like to query the index and say "Give me the count of each of the types under index events", so maybe a result set like
/events/type1 : 40
/events/type2: 20
/events/typeN: 10
where /events/_count would give me
/events: 70
Edit:
imotov's answer is great. I'm having trouble figuring how to get it working in JavaScript/Ajax easily though. I have something like this right now:
$.ajax({
type: 'GET',
url: 'http://localhost:9200/events/_search?search_type=count',
data: '{ "facets" : { "count_by_type" : { "terms" : { "field": "_type" }}}}',
success: function(text) {
console.log(text);
}
)}'
But am only getting the total count of elements in the ES, the facets portion of the answer seems to be missing.