# Enabling Pagination using spring-data-elasticsearch

**URL:** <https://discuss.elastic.co/t/enabling-pagination-using-spring-data-elasticsearch/239267>\
**Category:** Elasticsearch\
**Created:** [June 30, 2020, 10:04am UTC](https://discuss.elastic.co/t/enabling-pagination-using-spring-data-elasticsearch/239267 "2020-06-30T10:04:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Punj\_Shah](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/punj_shah/32/68873_2.png) [@Punj\_Shah](https://discuss.elastic.co/u/Punj_Shah)\
**Post date:** [June 30, 2020, 10:04am UTC](https://discuss.elastic.co/t/enabling-pagination-using-spring-data-elasticsearch/239267/1 "2020-06-30T10:04:28Z")

</div>

Hello!

I've integrated Spring-elastic-data into Spring Boot Project to achieve the Pagination functionality in ES.

Previously I was using query and response into List as below,

```auto
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

List<ProductsESDocument> productsDocument = new ArrayList<>();
   for (SearchHit hit : searchResponse.getHits()) {
   productsESDocument = objectMapper.convertValue(hit.getSourceAsMap(), ProductsESDocument.class);
         productsDocument.add(productsESDocument);     
}

```

Can anybody please guide me on how to achieve the pagination instead of List?

TIA

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [June 30, 2020, 12:33pm UTC](https://discuss.elastic.co/t/enabling-pagination-using-spring-data-elasticsearch/239267/2 "2020-06-30T12:33:47Z")

</div>

That's probably a question you should ask on spring data forums IMHO.

---

<div class="post-metadata">

**Author:** ![Punj\_Shah](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/punj_shah/32/68873_2.png) [@Punj\_Shah](https://discuss.elastic.co/u/Punj_Shah)\
**Post date:** [June 30, 2020, 12:41pm UTC](https://discuss.elastic.co/t/enabling-pagination-using-spring-data-elasticsearch/239267/3 "2020-06-30T12:41:18Z")

</div>

> [@dadoonet](#):
>
> IMHO

Since, this is related to the Elasticsearch I had posted here. Otherwise in relational database already implemented.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [June 30, 2020, 12:57pm UTC](https://discuss.elastic.co/t/enabling-pagination-using-spring-data-elasticsearch/239267/4 "2020-06-30T12:57:49Z")

</div>

So here's an elasticsearch answer:

You can use:

- the [`size` and `from` parameters](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-from-size.html) to display by default up to 10000 records to your users. If you want to change this limit, you can change `index.max_result_window` setting but be aware of the consequences (ie memory).
- the [search after](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-search-after.html) feature to do deep pagination.
- the [Scroll API](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html) if you want to extract a resultset to be consumed by another tool later.

---

<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:** [July 28, 2020, 1:07pm UTC](https://discuss.elastic.co/t/enabling-pagination-using-spring-data-elasticsearch/239267/5 "2020-07-28T13:07:03Z")

</div>

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