SharePoint 2013 renders a maximum of 50 search results per page.
It is not possible to change this hardwired limit by configuring the web part.
If you set it to greater than 50, it throws an error.
I am told that the search control needs to be overridden or extended in Visual Studio.
I want the limit to be removed entirely. If this is not possible then set it to the maximum possible value.
However, paging still needs to work, so if I set the page size to 1000 then it will render 1000 results per page.. etc.
Hello Marin Buric, Thanks for suggesting the link. It helped me resolve my requirement as well.
For the issue related to refresh, instead of disabling refresh, I retrieve all the items by paging to the first item from the search. A small extract for the same is below;
var IsRefresh = sessionStorage.IsRefresh;
if (IsRefresh != null && IsRefresh != “”) {
  //cookie exists then you refreshed this page(F5, reload button or right click and reload)
   sessionStorage.IsRefresh = “”;
   ctx.ClientControl.page(1);
}
else {
   if(lastPage.startItem<0){
      visibleElm.remove();hiddenElm.remove();
      sessionStorage.IsRefresh = “True”;
   }
   else{
      ctx.ClientControl.page(lastPage.startItem);
   }
}
The code checks the Session storage to retrieve a check flag for complete Page Load or Page Refresh. The accordingly paging is done using
ctx.ClientControl.page(page number);
wherein page number here is the first Page.
Hi, for my project i’m using this infinite loading webpart – http://www.eliostruyf.com/create-a-load-more-results-link-button-fo… ..
But for one list (new employees) we wanted to show all 150 items (more or less) .. after we tried examples on this forum, we found new solution.
So, we changed behavior of infinite loading web-part, there is ShowMoreResults.js that loads items on click:
 // When clicked on the show more link, the new set of results needs to be retrieved
 $(‘#’+controlId+’showmore’).click(function () {
 // Load the next set of results
 ctx.ClientControl.page(lastPage.startItem);
 return false; Â
 });
And we changed that to fire on load:
 /* auto load until all items shown*/
 ctx.ClientControl.page(lastPage.startItem);
Â
Now on page load we have all 155 items and page loading time is normal.
But.. There’s one issue with this fix/hack – when you refresh page you will get only items in last set of items. For example: web-part is showing 50 items, when you click ‘Show more’ it loads next 50, and next time it loads last 5 items. This 5 items will be shown on page refresh (f5).
One of solution could be to disable refersh click with this:
function disableF5(e) {
   if ((e.which || e.keyCode) == 116) {   e.preventDefault();   }
};
As we have employee filters on this list.. I decide to prevent page refresh and reset filter options. It’s very similar experience to page refresh.
Hope this will help you.
Marin
I ran into this same issue and needed to display about 200 results.  Matt Stark’s client-side solution appeared to work for us, but it requires being authenticated to the site. I published a blog post here that shows how to increase the limit to 500 using a server-side approach that works for an anonymous sites: http://www.scottewing.net/Blog/Post/2/Getting-Around-the-Content-Se…. I believe it might be possible to go higher than that, as one blogger wrote that it requires changing the search service’s MaxRowLimit property (default is 500).
Hi,
What do you mean by
“For this to work the web part must be set to render Async Client Side in the browser in the web part settings”
I do not see any such render async client side setting for content search we part.
Kindly help me with detailed steps how I can increase maximum number of items for a content search web part.
Thanks,
Hi,
Can you provide me with the script sample to implement Infinite scrolling/paging in search result page?