Customizing the Search Experience in SharePoint Online
* This is an outdated blog post and no longer maintained *
Recently, a client asked us to customize the search experience for their organization (a non-profit college of legal professionals). They already had an extensive store of SharePoint Online content in a number of custom libraries and lists. While out-of-the-box search worked, because of the highly customized nature of the content and how it was organized, standard search was not ideally suited to the everyday needs of the members. For example:
The member directory is a custom SharePoint list with a number of columns that do not naturally map to the standard Exchange Online fields using something similar to sharepoint permissions management by Cognillo. Converting the nearly 1000 records to Exchange was out of scope; therefore the standard SharePoint “People” search would not suffice.
The organization’s “definitive” or final documents are concentrated into one central library; however there are many subfolders, each aimed at different user communities and potentially requiring different views and access permissions. In addition, the libraries contain a number of custom columns that need to be readily discoverable by search.
The college is organized into several dozen committees, each with its own members, leadership team, and SharePoint subsite. In the subsites, there are document libraries where “working” documents are under construction. There needed to be an easy and intuitive way to search across committee content without returning similar content from the “central” library or other areas of the site.
With a limited budget, the challenge for us was to create a search experience that utilized basic SharePoint Search building blocks, but that was customized for the unique needs of the membership. If this scenario is familiar to you, read on…in this blog, I illustrate the approach and give some specific examples.
An aside: this is not a detailed technical discussion of how to set up SharePoint search solutions; this subject is well-documented, as you can easily discover by doing a web search on phrases such as “SharePoint 2013 search solutions”. Nor is this a step-by-step tutorial of how the customization was done. Rather, this is an overview of the high-level approach we took to solve one client’s SharePoint search needs quickly and within budget.
Step 1: Deploy an enterprise search center
Virtually every custom search scenario will require you to create and provision an enterprise search center, which provides greater control over the search and results pages than standard search. This was no exception. Fortunately, while you can create a new search center site collection rather easily, in most instances SharePoint Online already comes with one, available athttps://.sharepoint.com/search. For details on how to set up and manage a search center, see http://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/manage-the-search-center-in-sharepoint-online-HA103994122.aspx.
Step 2: Create custom search result sources
Result sources, previously known as “search scopes” in older versions of SharePoint, are simply “buckets” of results that are filtered to include only results that are of interest in a given context. Result sources are extremely powerful; you can create a result source to contain items satisfying almost any combination of metadata. For example, you might create a result source for Word documents that are meeting minutes, another for presentations authored by specific individuals, and another for content that resides in one or more specific lists or libraries.
For this project, we created three custom result sources: one for the people search (across the pre-existing custom SharePoint list), another for documents in the central repository, and another for content residing in committee subsites. We won’t have space in this blog to detail how each source was set up, but if you are customizing a client’s search experience and are considering a similar approach, there are many articles on TechNet, MSDN, and other sources that provide details on how to do so.
Step 3: Customize the central search page
The search center page is rather stark, but can readily be customized. For example, you can add pull-down scope menus, a link to advanced search, help text, and links to assist users to find content more quickly.
Here is an out of the box SharePoint Online search center welcome page. As you can see, it’s pretty basic.
With just a little work, we added some useful functionality. We enabled a pull-down scope picker that contains the new result sources, links to blank search pages within each scope (to immediately go to the search area of interest), and a link to the SharePoint advanced search page.
Much more customization could be added, using search web parts or the content editor web part in which you can add free text and links. For details, see http://office.microsoft.com/en-us/sharepoint-server-help/customize-the-search-center-site-HA010382279.aspx. You can also change the look and feel of the search center as desired using standard SharePoint functionality in Site Settings.
Below is the finished search center page.
Note: the actual search scopes have been blurred out in the screen shots; for the purposes of this article, we will call them “Members”, “Central Documents”, and “Committee Content”.
The scope picker now contains the three new result sources. When selected, search results are presented on their respective results pages (see the next step).
Step 4: Create customized results pages
The result sources are distinct enough that our client wanted to have different search experience in each. For example, one source would need a different set of refiners than another, and different query rules were needed to promote specific result types within each source. We solved this by creating three new results pages, each one being a “blank slate” for further customization.
With these relatively straightforward modifications, our client can easily narrow down their searches to specific areas of the site and get the results they need. For example, suppose a member wants to search for content related to “bankruptcy”. He or she could of course select the “Everything” scope which would search across the entire site. But, let’s assume they were looking for content in the central documents library. Selecting the “Central Documents” scope, the results appear on the page customized for that content repository.
Note the custom refiners at the left of the page (outlined in red). These include the document class, college author (not the standard SharePoint author), committee of origin, and date that the document or presentation was originally published. These are all custom columns created for the central document repository. Refiners were added by modifying the search schema to surface the custom columns. For details on how this is done, see http://blogs.technet.com/b/tothesharepoint/archive/2013/11/11/how-to-add-refiners-to-your-search-results-page-for-sharepoint-2013.aspx.
In addition to custom refiners, we added links to the three new scopes (result sources) just below the search box, and also provided bit of help text. Finally, there is a “Looking for the home page?” promoted result–added by a query rule that fires on only this result source–containing a link to the repository itself.
Now let’s assume the user wants to search for the same term “bankruptcy”, but this time rather than find documents, they wish to locate individuals with expertise in that area. They could start over and select the “Members” scope from the pull-down menu, or just click that scope under the search box. The results are as follows:
Note the substantial differences between this search experience and the search for the same term across the central document library. Here, the search is limited to the custom SharePoint list containing member metadata, including photos, place of business, bar membership, committee membership and areas of participation (expertise). A few of the search hits are highlighted in yellow. The results themselves display members’ metadata, using a customized display template. Clicking on a result opens a full page of information for that member.
Because these results are presented on a different results page than for the documents, we could use a different set of refiners, better suited to a typical people search. For example, if the user is looking for a bankruptcy expert practicing in or holding bar membership in a specific state, such results are just a click or two away using the refiners.
The remaining custom scope (Committee Content) would return yet a different set of results, this time centered on committees having expertise in this area, and content in their respective subsites. In addition, the “Everything” and “Conversations” result scopes were retained from the standard SharePoint search environment. This solution gives the user a lot of flexibility and power to find just the items they need quickly and intuitively.
These are some ideas on how you might customize a client’s SharePoint search experience using result sources, result pages, refiners, promoted results, and display templates. With only one exception (a custom display template), all customization was done using standard SharePoint building blocks, requiring no code. Happy searching!