As @arun said in his answer, "the client would not know what you installed on the server side." Therefore, do not be surprised that they are empty. On the other hand, I would warn you about pagination problems that may occur in some situations.
Pagination is a simple thing when you have few documents to read, and all you have to do is play with the start and rows options.
So, for a client who needs 50 results per page, page # 1 is requested using start = 0 & rows = 50. Page # 2 - start = 50 and rows = 50, page No. 3 - start = 100 & rows = 50 etc. .d. But in order for Solr to know which 50 documents to return, starting from an arbitrary point N, it is necessary to create an internal queue of the first N + 50 sorted documents that match the query, so that he can throw out the first N documents and return the remaining 50. This means that the amount of memory needed to return paginated results grows linearly with an increase in the initial parameter.
Therefore, if you have many documents, I mean hundreds of thousands or even millions, this is not feasible.
This is what can bring your solr server to its knees.
For typical applications displaying search results for the user, this does not tend to be a big problem, since most users do not care about drilling the last first page of search results pages - but for automated systems that want to crunch data for all documents matching the query, there may be seriously prohibitive.
This means that if you have a website and swap search results, the real user does not go that far, but on the other hand, think about what might happen if a spider or scraper tries to read all the pages of the website. Now we are talking about Deep Paging.
I suggest reading this amazing post:
https://lucidworks.com/blog/2013/12/12/coming-soon-to-solr-efficient-cursor-based-iteration-of-large-result-sets/
And take a look at this page of the document:
https://cwiki.apache.org/confluence/display/solr/Pagination+of+Results
And here is an example that tries to explain how to draw pages with cursors.
SolrQuery solrQuery = new SolrQuery(); solrQuery.setRows(500); solrQuery.setQuery("*:*"); solrQuery.addSort("id", ORDER.asc); // Pay attention to this line String cursorMark = CursorMarkParams.CURSOR_MARK_START; boolean done = false; while (!done) { solrQuery.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark); QueryResponse rsp = solrClient.query(solrQuery); String nextCursorMark = rsp.getNextCursorMark(); for (SolrDocument d : rsp.getResults()) { ... } if (cursorMark.equals(nextCursorMark)) { done = true; } cursorMark = nextCursorMark; }