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?

posta 5 anni fa640 visualizzazioni
3 Risposte
0
Risposta accettata

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.

con risposta 5 anni fa
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.

con risposta 5 anni fa
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.

con risposta 5 anni fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande