SOLVED
Home

Configure modern search results to search all of your organization (rather than the current site)

Highlighted
Kerem Yuceturk
Microsoft

Hey everyone,

 

We heard from many of you the need to be able to change the scope of your modern search results pages. When you create a new communication site or team site in SharePoint Online today, and type into the search box, you are taken to the modern search results page. This page shows results from your current site by default, and allows you to expand the scope of your search to the hub that the current site is associated with (if there is one), or to the whole organization.

 

But there is a desire for being able to change the behavior to always search over the whole organization, without needing an additional click, especially if the site in question will be used as a modern landing page for your organization. 

DefaultSearchScope.JPGSearching in a site will show results from that site (Strategy and Planning), with a control to expand the search scope to the hub (Sales) or the whole organization

I'm happy to say that with the latest version of the SharePoint PnP PowerShell extensions, it is possible to run a simple command as the site owner, and make your site use the organization scope by default.

 

To change this setting:

1. Start PowerShell in administrator mode as you will be installing the PnP extensions.

2. Run the following commands to in this order:

PS C:\WINDOWS\system32> Install-Module SharePointPnPPowerShellOnline
# If you previously had installed this module, you may need to use the "-Force" parameter to install the newer version.
PS C:\WINDOWS\system32> Connect-PnPOnline -Url https://contosodemosg.sharepoint.com/sites/Strategy -UseWebLogin
# this will prompt you to sign into your site. Use the site owner credentials to sign in
PS C:\WINDOWS\system32> $web = Get-PnPWeb PS C:\WINDOWS\system32> $web.SearchScope = 1
# 1 for Tenant, 0 for default behavior
PS C:\WINDOWS\system32> $web.Update() PS C:\WINDOWS\system32> Invoke-PnPQuery

After running these commands, the site will start to show results from the whole organization.OrganizationResults.JPGAfter the change, results from the whole organization are displayed.To go back to the default setting, run the commands again with the value provided to "SearchScope" parameter to 0. 

 

We will be providing a way to set this setting using the UI later this year as well. 

16 Replies
Hi Kerem,
Will this also be added to the sitescript actions soon? That’s in my opinion more important then having it available through the UI.
Is there a way to change the scope to be just the sites in the hub? This would allow you to set all hub sites to have the same search scope as the root hub site.

Hi @Robert Schouten, not right away, but some of my colleagues are working on adding the ability to set properties and turn on features. Hopefully that will be available later this year.

Solution

Hi @Rick DeFoe, we are actually working on making that happen. We hope that will be coming in the next couple of months.

@Robert Schouten, in the meanwhile you could make the site script to start a flow and from that flow call an Azure function that runs the PowerShell script.

 

Laura

@Laura Kokkarinen yes I know that road. At some customers, an Azure environment is not always available. But if it is, it a very valid option! Tnx...

Thank you for adding this feature. Often requested by our customers. Just tried it out and worked directly as I expected.

Optional easy way: Create a Link to your Navigation Bar -> https://YourTenantName.sharepoint.com/_layouts/15/sharepoint.aspx?&v=search

 

@Kerem Yuceturk This looks great! I am trying to implement it and run into an issue when trying to connect to the site. We have single sign on enabled via SailPoint and when the browser goes to try and log me in I get a blinking screen and cannot get connected. Any suggestions?

@Kerem Yuceturk It seems that searching trough the REST API, this setting is ignored.

 

This query for example, searches only in the current sitecollection on a modern communication site:

https://mytenant.sharepoint.com/sites/moderncommunicationsite/_api/search/query?querytext=%27test%27

 

See also this issue:

https://sharepoint.stackexchange.com/questions/260111/rest-search-results-from-communication-sites-a...

@Kerem Yuceturk It seems that searching trough the REST API, this setting is ignored.

 

This query for example, searches only in the current site collection on a modern communication site:

https://mytenant.sharepoint.com/sites/moderncommunicationsite/_api/search/query?querytext='test'

 

See also this issue:

https://sharepoint.stackexchange.com/questions/260111/rest-search-results-from-communication-sites-a...

@Renevdo 

 

Even though the search api of the site is used you still can be able to get tenant wide results. 

 

When doing a site scoped search we scope by limiting the search in the query template of the query with Path:"UrlToCommunicationSite". And when upscoping this path part of querytemplate is removed.

 

So you should still be able to get tenant wide results even if the search api of the communicationsite is used to post the query.

 

Are you only seeing results from your communicationsite after changing the site scope?

@Joe Volk , sorry not familiar with that. My two factor auth works when I use -UseWebLogin. This page has more information about the PnP solution, and may have some discussions that might be helpful: https://github.com/SharePoint/PnP-PowerShell

Hi @Renevdo, This is for the modern search results UI only. It has no effect on REST. You should be able to get to the scope that you want in REST in other ways like  as @Geir-Magnus Pettersen mentioned!

@Kerem Yuceturk 

 

I noticed that the search box placeholder does not change on hub sites, see screenshots: 

 

Hub search box: 

hub.png

All other sites:

allother.png

 

Will this be fixed/updated so that the placeholder is consistent across hub and non-hub sites? 

Related Conversations