I’ve just published solr_pager a search component for Solr that should make paging easier. It’s main use should be by XSLT transformation (using XSLT writer), so one should not bother anymore with slow recursive XSLT hacks and only apply fast templates on paging list in search result.
Initial version 0.2.0 can be found on http://devel.dob.sk/solr_pager. Documentation is bundled 😉
I’ve tested it against development version of Solr 1.4, but I think it should works also with currently stable Solr 1.3 (If not let me know, I’ll try to fix it).
How it works:
After install Solr Pager and configuring Solr to use Pager component for results (see README file), one should simply pass pager parameter with number of pager starts that should be generated (pager=10) to search query and list of pager start will be returned in response, smth. like this:
<response> <lst name="pager"> <lst name="pages">Â <!-- list of all pages --> <int name="2">25</int> <int name="3">50</int> <int name="4">75</int> <!-- this is actual page --> <int name="5">100</int> <int name="6">125</int> <int name="7">150</int> <int name="8">175</int> <int name="9">200</int> <int name="10">225</int> <int name="11">250</int> </lst> <int name="prev">50</int>Â <!-- previous page, with start = 50 --> <int name="next">100</int>Â <!-- next page, with start = 75 --> <int name="last">1225</int> <!-- last page, with start = 1225 --> <int name="actual">4</int> <!-- actual page number --> <int name="count">49</int> <!-- count of all pages --> </lst> </response>
There is also another parameter pager.pre that sets how many proceeding pager starts should be generated, one pager start will be generated for actual page and all other pages will be pager starts of pages following the actual page.
Name is position of the page starting from 1 and node value is parameter (document position) that should be passed back to solr as value for start parameter.
It’s simple component, so it should have no bugs (HA HA), but if found any plz. report them to me. Also if you have some interesting and usable feature or patch that could be added to Solr Pager, again,don’t be ashamed and let me know.