Wednesday, August 26, 2015

Office 365 (SharePoint 2013 Online) - Missing results in Search Results webpart

Scenario: While building a search based application in Office 365 (SharePoint 2013 Online) , I observed a behavior which I thought was quirky. A page on a publishing site had a Search Results web part and a Content by Search web part. While configuring them, I set them to have the same query and result source.
Expected result would’ve been the exact same result set and count. But for some reason, the Content By Search web part was returning all the pages as expected but the search results web part was only returning a subset of it. What was even quirkier was that the search preview on the search results web part would display all the results.
I initially thought that some pages might not have been published and hence search results web part would not display them, but that was not the case. I started to debug what was being returned to the browser. I looked at the objects that the search results returned and did not find anything there. Starting to analyze the data, I realized all the pages that were not showing up had some content that was similar, even though they were unique pages the content had a similar tone to it. I think in the earlier versions of the Search Result Web Parts, the user had an option to “Trim Duplicates” which is no longer present in the SharePoint 2013 Search Result Web Part’s properties.
Digging a bit deeper, I found a way to set the Trim Duplicates to false.
1. Export the Search Results Web Part from your page.
2. Open the .webpart file in your favorite editor.
3. Search for “Trim Duplicates”
4. Set the Trim Duplicates property to False.
5. Upload the web part.
6. Add the web part to your page.