Thursday 13 June 2013

Configure Search Scopes and Site Collection Display Groups with PowerShell

Note for myself again.

I wanted to create search scope which returned results from a specific area in my SharePoint site collection. I also wanted this scope to be available in the site collection's "Scopes drop down".

This code did the trick

$createdScope = New-SPEnterpriseSearchQueryScope -Name "Specific area" -Description "Project sites" -SearchApplication $searchapp -DisplayInAdminUI $true $rule = New-SPEnterpriseSearchQueryScopeRule -RuleType "Url" -Url "http://portal" -MatchingString "http://portal/SpecificArea" -FilterBehavior "Require" -UrlScopeRuleType "Folder" -scope $createdScope $Site = Get-SPSite -Identity http://portal $searchContext = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($Site) $scopes = new-Object Microsoft.Office.Server.Search.Administration.Scopes($searchContext) $displayGroup = $scopes.GetDisplayGroup("http://portal", "Search Dropdown") $displayGroup.Add($scopes.GetSharedScope("Specific area")) $displayGroup.Update()

This script was created based on the following posts so thanks the authors for pointing me in the right direction:
http://social.technet.microsoft.com/Forums/en-US/sharepointadminprevious/thread/6159b4b5-ec8a-4184-b5e8-1a226eff1cee/
http://onlinecoder.blogspot.co.uk/2012/12/powershell-script-to-create-search.html



2 comments:

  1. Part of this script will fail, based on whether or not you have already visited the scope settings page in the site collection. See here for more details: http://sharepointgrind.wordpress.com/2013/09/29/updating-the-default-search-scope-for-a-site-collection/

    ReplyDelete
  2. A good point Richard. Yes it does rely on you having gone to the Scope settings page.

    ReplyDelete