# Live/historical charts by elasticsearch documents

**URL:** <https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864>\
**Category:** Elasticsearch\
**Created:** [May 3, 2020, 11:28am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864 "2020-05-03T11:28:10Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![JavaDeveloper](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/javadeveloper/32/67144_2.png) [@JavaDeveloper](https://discuss.elastic.co/u/JavaDeveloper)\
**Post date:** [May 3, 2020, 11:28am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/1 "2020-05-03T11:28:10Z")

</div>

Hi everyone.  
I want to create real time and historical charts (for example by chart.js library) from the elasticsearch documents.  
each document has its own date field. So I want to have a linear chart (x axis : time field, y axis: another (value) filed) monthly, from example between (1-Jan-2020 to 1-Feb-2020).

If I want to query a list of (x,y) values between this time range, the problem is that the amount of data in this period is very large (2592000 records monthly).  
Do I have to break down my chart into smaller periods (for example daily)?  
what is the best way to do this scenario?

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 4, 2020, 1:50am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/2 "2020-05-04T01:50:48Z")

</div>

Are you having problems running the query? Elasticsearch should be able to handle that pretty easily.

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [May 4, 2020, 4:18am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/3 "2020-05-04T04:18:19Z")

</div>

If you base your visualisations on aggregations rather than try to return and process individual documents this should not be a problem. This is e.g. what Kibana does.

---

<div class="post-metadata">

**Author:** ![JavaDeveloper](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/javadeveloper/32/67144_2.png) [@JavaDeveloper](https://discuss.elastic.co/u/JavaDeveloper)\
**Post date:** [May 4, 2020, 8:00am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/4 "2020-05-04T08:00:13Z")

</div>

@Christian_Dahlqvist  
I'm new to the elasticsearch.  
How can I do it? can you share an example or reference link please?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [May 4, 2020, 8:02am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/5 "2020-05-04T08:02:03Z")

</div>

I would recommend having a look at [the documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html).

---

<div class="post-metadata">

**Author:** ![JavaDeveloper](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/javadeveloper/32/67144_2.png) [@JavaDeveloper](https://discuss.elastic.co/u/JavaDeveloper)\
**Post date:** [May 4, 2020, 8:05am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/6 "2020-05-04T08:05:12Z")

</div>

@warkolm  
Sure!  
Elasticsearch can do it, but there is not enough advanced tutorial/examples about this case in the web.

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 4, 2020, 8:07am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/7 "2020-05-04T08:07:57Z")

</div>

As Christian mentioned, using aggregations is the best way.

---

<div class="post-metadata">

**Author:** ![JavaDeveloper](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/javadeveloper/32/67144_2.png) [@JavaDeveloper](https://discuss.elastic.co/u/JavaDeveloper)\
**Post date:** [May 4, 2020, 8:13am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/8 "2020-05-04T08:13:35Z")

</div>

I will read aggregations tonight and hope the reference can be a good help.  
Thank you.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 1, 2020, 8:13am UTC](https://discuss.elastic.co/t/live-historical-charts-by-elasticsearch-documents/230864/9 "2020-06-01T08:13:37Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
