2017-08-27 4 views
5

Je construis une pagination typique qui permet à l'utilisateur de cliquer sur un numéro de page particulier et voir les résultats (similaire à la vue de résultats de recherche google). J'utilise l'API de recherche cloudant pour cela. L'API de recherche cloudant fournit l'option de limite mais aucune option de saut. Comment puis-je ignorer n nombre de résultats si l'utilisateur est sur la page 1 et clique sur la page 4?Cloudant/Couch db pagination dans la recherche API - Comment passer n nombre d'enregistrements

Je peux voir que la pagination est implémentée en utilisant des signets. Cela signifie-t-il que je dois d'abord obtenir le signet pour la page 4 en envoyant 3 demandes supplémentaires l'une après l'autre à l'API de recherche?

Répondre

2

Il y a plusieurs façons de gérer cela - l'une est celle que vous avez déjà suggérée, qui consiste simplement à aller chercher les pages au besoin pour obtenir les signets. Je ne suis pas sûr qu'il existe de nombreuses alternatives pour les résultats de recherche où nous ne pouvons pas pré-calculer les résultats. Une autre alternative, et cela dépend un peu des détails de ce que vous essayez de faire, est de créer une vue contenant les données et d'utiliser les touches pour affiner la vue aux résultats dont vous avez besoin. Les sorties de vue prennent en charge l'utilisation de limit et skip, ce qui vous permet d'implémenter la pagination.

Il y a aussi un bon exemple de la documentation dans la pagination: http://docs.couchdb.org/en/2.1.0/ddocs/views/pagination.html

+0

Merci. Je vais expérimenter avec les vues mais je ne suis pas sûr si la vue est ce que je devrais utiliser parce que je suis en train de mettre en œuvre une recherche – Sethunath