You are on page 1of 2

# Create a new Search Service Application in SharePoint 2013

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue


# Settings
$IndexLocation = "C:\Data\Search15Index #Location must be empty, will be deleted
during the process!
$SearchAppPoolName = "Search App Pool"
$SearchAppPoolAccountName = "myorg\administrator"
$SearchServerName = (Get-ChildItem env:SP13).value
$SearchServiceName = "Search15"
$SearchServiceProxyName = "Search15 Proxy"
$DatabaseName = "Search15_ADminDB"
Write-Host -ForegroundColor Yellow "Checking if Search Application Pool exists"
$SPAppPool = Get-SPServiceApplicationPool -Identity $SearchAppPoolName -ErrorAct
ion SilentlyContinue
if (!$SPAppPool)
{
Write-Host -ForegroundColor Green "Creating Search Application Pool"
$spAppPool = New-SPServiceApplicationPool -Name $SearchAppPoolName -Account
$SearchAppPoolAccountName -Verbose
}
# Start Services search service instance
Write-host "Start Search Service instances...."
Start-SPEnterpriseSearchServiceInstance $SearchServerName -ErrorAction SilentlyC
ontinue
Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $SearchServerName -E
rrorAction SilentlyContinue
Write-Host -ForegroundColor Yellow "Checking if Search Service Application exist
s"
$ServiceApplication = Get-SPEnterpriseSearchServiceApplication -Identity $Search
ServiceName -ErrorAction SilentlyContinue
if (!$ServiceApplication)
{
Write-Host -ForegroundColor Green "Creating Search Service Application"
$ServiceApplication = New-SPEnterpriseSearchServiceApplication -Partitioned
-Name $SearchServiceName -ApplicationPool $spAppPool.Name
-DatabaseName $DatabaseName
}
Write-Host -ForegroundColor Yellow "Checking if Search Service Application Proxy
exists"
$Proxy = Get-SPEnterpriseSearchServiceApplicationProxy -Identity $SearchServiceP
roxyName -ErrorAction SilentlyContinue
if (!$Proxy)
{
Write-Host -ForegroundColor Green "Creating Search Service Application Proxy
"
New-SPEnterpriseSearchServiceApplicationProxy -Partitioned -Name $SearchServ
iceProxyName -SearchApplication $ServiceApplication
}
$ServiceApplication.ActiveTopology
Write-Host $ServiceApplication.ActiveTopology

# Clone the default Topology (which is empty) and create a new one and then acti
vate it
Write-Host "Configuring Search Component Topology...."
$clone = $ServiceApplication.ActiveTopology.Clone()
$SSI = Get-SPEnterpriseSearchServiceInstance -local
New-SPEnterpriseSearchAdminComponent SearchTopology $clone -SearchServiceInstance
$SSI
New-SPEnterpriseSearchContentProcessingComponent SearchTopology $clone -SearchSer
viceInstance $SSI
New-SPEnterpriseSearchAnalyticsProcessingComponent SearchTopology $clone -SearchS
erviceInstance $SSI
New-SPEnterpriseSearchCrawlComponent SearchTopology $clone -SearchServiceInstance
$SSI
Remove-Item -Recurse -Force -LiteralPath $IndexLocation -ErrorAction SilentlyCon
tinue
mkdir -Path $IndexLocation -Force
New-SPEnterpriseSearchIndexComponent SearchTopology $clone -SearchServiceInstance
$SSI -RootDirectory $IndexLocation
New-SPEnterpriseSearchQueryProcessingComponent SearchTopology $clone -SearchServi
ceInstance $SSI
$clone.Activate()
Write-host "Your search service application $SearchServiceName is now ready

You might also like