Wednesday, January 29, 2014

SharePoint 2013: How to Configure the Search Service Application using PowerShell




Description

This post describes how to configure the SharePoint Server 2013 Search Service Application using PowerShell. 

In this example, there is one Database Server (SERVER01), one Web Server (SERVER03), and one Application Server (SERVER04).


Solution

This solution is for a small farm environment that has one Database Server, one Web Server, and one Application Server.  The steps below will result in a complete Search Topology. 

The steps provided do not represent an automated script that you would copy and paste into a window and run all at once.  Instead, the steps are intended to be run manually, one at a time, in the PowerShell window. The post is written this way on purpose and provides a way to step through each cmdlet one at a time.

If you have a different server topology or if you would prefer a fully automated script to provision the Search Service Application, then I recommend that you look at the References section and possibly utilize one of the more sophisticated examples that exist in the community knowledge base.



Before Starting...

Ensure that the Service Account to be used for the Service Application Pool exists and has been registered in Central Administration as a Managed Account

Ensure that the Host Controller Service in Central Administration is registered under a Service Account that has adequate permissions to activate the Search Topology (e.g. Farm Account)


1.  Prepare the PowerShell Session
 
Open the PowerShell window as Administrator.

Clear-Host

Set-ExecutionPolicy unrestricted
Respond Y to confirm

Get-PSSnapin -name Microsoft.SharePoint.PowerShell -EA SilentlyContinue


2.  Determine Naming Convention and Set Initial Variables

Set the Variables

$Svr01 = "SERVER01"
$Svr03 = "SERVER03"
$Svr04 = "SERVER04"
$SvcAppPl03 = "SvcApp_SPServiceApplicationPool_03"
$SvcAppSrch = "SvcApp_SPEnterpriseSearchServiceApplication_01"
$SvcAppSrchPrxy = "SvcApp_SPEnterpriseSearchServiceApplication_01_Proxy_01"
$SvcAppDBSvr = "SERVER01"
$SvcAppDB = "SvcApp_SPEnterpriseSearchServiceApplication_01_DB_01"
$SvcAppSrchAdmnCmp = $SvcAppSrch | Get-SPEnterpriseSearchAdministrationComponent
$ESSI03 = Get-SPEnterpriseSearchServiceInstance -Identity "SERVER03"
$ESSI04  = Get-SPEnterpriseSearchServiceInstance -Identity "SERVER04"
$QSSN03 = Get-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance -Identity "SERVERN03"
$QSSN04 = Get-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance -Identity "SERVERN04"
$IndexLocP = "I:\IndexPrimary"
$IndexLocR = "I:\IndexReplica"


3.  Start the Search Service Instances

Start-SPEnterpriseSearchServiceInstance -Identity $Svr03

Start-SPEnterpriseSearchServiceInstance -Identity $Svr04


4.  Start the Query and Site Settings Service Instances

Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance -identity $QSSN03

Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance -identity $QSSN04


5.  Create the Search Service Application

New-SPEnterpriseSearchServiceApplication -Name $SvcAppSrch -ApplicationPool $SvcAppPl03 -AdminApplicationPool $SvcAppPl03 -DatabaseName $SvcAppDB -DatabaseServer $SvcAppDBSvr


6.  Set the Search Admin Component

Set-SPEnterpriseSearchAdministrationComponent -SearchServiceInstance $Svr04


7.  Create and Configure Search Topology 02

$SrchTop01 = Get-SPEnterpriseSearchTopology -SearchApplication $SvcAppSrch

$SrchTop02 = New-SPEnterpriseSearchTopology -SearchApplication $SvcAppSrch -Clone -SearchTopology $SrchTop01


8.  Create the Search Admin Component

New-SPEnterpriseSearchAdminComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr04


9.  Create Search Content Processing Components

New-SPEnterpriseSearchContentProcessingComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr04

New-SPEnterpriseSearchContentProcessingComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr03


10.  Create Analytics Processing Components

New-SPEnterpriseSearchAnalyticsProcessingComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr04

New-SPEnterpriseSearchAnalyticsProcessingComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr03


11.  Create Search Crawl Components

New-SPEnterpriseSearchCrawlComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr04

New-SPEnterpriseSearchCrawlComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr03


12.  Create Search Query Processing Components

New-SPEnterpriseSearchQueryProcessingComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr04

New-SPEnterpriseSearchQueryProcessingComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr03


13.  Create and Assign Index Partitions

New-SPEnterpriseSearchIndexComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr04 -RootDirectory $IndexLocP -IndexPartition 0

New-SPEnterpriseSearchIndexComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr03 -RootDirectory $IndexLocR -IndexPartition 0

New-SPEnterpriseSearchIndexComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr03 -RootDirectory $IndexLocP -IndexPartition 1

New-SPEnterpriseSearchIndexComponent –SearchTopology $SrchTop02 -SearchServiceInstance $Svr04 -RootDirectory $IndexLocR -IndexPartition 1


14.  Activate Search Topology 02

Set-SPEnterpriseSearchTopology -Identity $SrchTop02


15.  Remove Search Topology 01

$SrchTop01 = Get-SPEnterpriseSearchTopology -SearchApplication $SvcAppSrch | where {($_.State) -eq "Inactive"}

Remove-SPEnterpriseSearchTopology -Identity $SrchTop01 -Confirm:$false


16.  Create Search Service Application Proxy

$SvcAppSrchPrxy = New-SPEnterpriseSearchServiceApplicationProxy -Name "SvcApp_SPEnterpriseSearchServiceApplication_01_Proxy_01" -SearchApplication $SvcAppSrch



Key Words
Search Service, Search Service Application, Search Topology.



References

ChandrasekarN (February, 2013).  SharePoint 2013 - Configuring Search Service Application and Topology using PowerShell.  Retrieved January 29, 2014 from http://blogs.msdn.com/b/chandru/archive/2013/02/19/sharepoint-2013-configuring-search-service-application-and-topology-using-powershell.aspx

Earp, S. (September, 2013).  Configuring SharePoint 2013 Search with PowerShell.  Retrieved January 27, 2014 from http://blogs.technet.com/b/ptsblog/archive/2013/09/19/configuring-sharepoint-2013-search-with-powershell.aspx

Harbar, S. (July, 2012).  Multi Tenancy with SharePoint 2013: What’s new and changed.  Retrieved January 29, 2014 from http://www.harbar.net/articles/sp2013mt.aspx

Klindt, T. (December, 2012).  Create SharePoint 2013 Search service application with PowerShell.  Retrieved January 29, 2014 from http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=378

Microsoft TechNet (2013).  Create and configure a Search service application in SharePoint Server 2013.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/gg502597.aspx

Microsoft TechNet (2013).  Get-SPSearchService.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ee620539(v=office.14).aspx

Microsoft TechNet (2013).  Get-SPEnterpriseSearchServiceApplication.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff608050.aspx

Microsoft TechNet (2013).  Get-SPEnterpriseSearchServiceInstance.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff607740.aspx

Microsoft TechNet (2013).  Get-SPEnterpriseSearchTopology.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/jj219578.aspx

Microsoft TechNet (2013).  Get-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff608115.aspx

Microsoft TechNet (2013).  New-SPEnterpriseSearchServiceApplication.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff607751.aspx

Microsoft TechNet (2013).  New-SPEnterpriseSearchServiceApplicationProxy.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff607722.aspx

Microsoft TechNet (2013).  Set-SPEnterpriseSearchServiceApplication.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff607974.aspx

Microsoft TechNet (2013).  Set-SPEnterpriseSearchTopology.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/jj219653.aspx

Microsoft TechNet (2013).  Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance.   Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff607759.aspx

Microsoft TechNet (2013).  Start-SPEnterpriseSearchServiceInstance.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/ff607852.aspx

Microsoft TechNet (2013).  Remove-SPEnterpriseSearchTopology.  Retrieved January 27, 2014 from http://technet.microsoft.com/en-us/library/jj219505.aspx

Ravikanth (April, 2013).  Creating and configuring a SharePoint 2013 search service application.  Retrieved January 29, 2014 from http://www.powershellmagazine.com/2013/04/29/creating-and-configuring-a-sharepoint-2013-search-service-application/

No comments:

Post a Comment