pagination question on appsync to elasticsearch

0

Something bothers me here, in that AppSync connected to ElasticSearch and I need to use pagination. I see AppSync returns a next token which sound great, but how does it handle a user that wants to jump to the 6th page of content. How is that handled?

I also did a little testing in ElasticSearch and pagination looks to be controlled by 2 values; size and from. These remind me of limit and offset in SQL. So would it be better to just pass in a size and page number to the query than to make use of the next token?

asked 5 years ago633 views
3 Answers
0
Accepted Answer

AppSync can use either cursor-based or offset-based pagination. At AppSync, we generally lean toward cursor-based pagination as it's more ideal for real-time data where the ordering of records might change. (Useful explanation of advantages / disadvantages of Cursor-Based over Offset-based pagination: https://www.sitepoint.com/paginating-real-time-data-cursor-based-pagination/) It sounds like in your use case, you'll want to simply use offset-based pagination, which can be accomplished using the size and from attributes in the elasticsearch query, as you mentioned. You can pass size and from args from your graphql query into your elasticsearch query.

answered 5 years ago
0

Aaron,

Thanks for the reply. I did go with the offset style as that just made more sense. I will need to look at that url you posted to have a better understanding of the pros/cons of each.

answered 5 years ago
0

Following up to this. You can use the Elasticsearch Search After APIs to implement cursor based pagination on data in Elasticsearch. See https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-search-after for more information.

answered 5 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions