PrimeTimeTran
PrimeTimeTran

Reputation: 2137

Elasticsearch group by ranges of time in Rails

I have a large dataset in which I need to group values based on the created_at time.

Requirements are that they're grouped by 5 minute intervals.

I think that this should do it, but it doesn't seem to work:

self.search(aggs: {created_at: {date_histogram: {field: 'created_at', interval: 
'5m'}}})

This is the search query:

curl http://localhost:9200/prices_development/_search?pretty -d '{"query":
{"match_all":{}},"size":1000,"from":0,"aggs":{"created_at":{"date_histogram":
{"field":"created_at","interval":"5m"}}},"timeout":"11s","_source":false}'

It just gives me back the entire set of data though. i.e. every record:

rails console

How can I to get back the data set, grouped by 5 minutes intervals?

Upvotes: 0

Views: 186

Answers (1)

Praneeth
Praneeth

Reputation: 751

Aggregation results are present in aggregationsfield of the response, not hits.

Set size inside aggs to limit number of aggregations.

If you only want aggregation results then set outer size to 0

Upvotes: 1

Related Questions