B - PROBLEMS :
1. Search Application: Index Component grows bigger when more content is populated at SharePoint farm.
2. Available Drive Space: this should have at least twice the value of physical memory (RAM). By default, all Search components are saved at C drive and it will consume this drive; hence, it leads to many operational issues. For example: permissions removed silently due to the problem at Virtual memory swap file.
C - SOLUTION:
1. Search Availability: to ensure the Search service is available to users, "Query Processing" and "Index" components should be replicated at all SharePoint servers.
2. Index Components of Search Application should be allocated at a separate drive to cater for future growth & access speed.
# to move the Index Components at all SharePoint servers to drive I New-SPEnterpriseSearchIndexComponent -SearchTopology $new -IndexPartition 0 -SearchServiceInstance $hostWFE1 -RootDirectory "I:\FEOshareSearchComponents2015" New-SPEnterpriseSearchIndexComponent -SearchTopology $new -IndexPartition 0 -SearchServiceInstance $hostWFE2 -RootDirectory "I:\FEOshareSearchComponents2015" New-SPEnterpriseSearchIndexComponent -SearchTopology $new -IndexPartition 0 -SearchServiceInstance $hostApp -RootDirectory "I:\FEOshareSearchComponents2015"
D - SOURCE CODE:
### GET THE EXISTING ENVIRONMENT PARAMETERS ###
$ssa = Get-SPEnterpriseSearchServiceApplication "Search Service Application - FEOshare"
$current=Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
$new=New-SPEnterpriseSearchTopology -Clone -SearchApplication $ssa -SearchTopology $current
# list all search servers deployed in the farm
$hostApp = Get-SPEnterpriseSearchServiceInstance -Identity "kc1mspappprd01"
$hostWFE1 = Get-SPEnterpriseSearchServiceInstance -Identity "kc1mspwfeprd01"
$hostWFE2 = Get-SPEnterpriseSearchServiceInstance -Identity "kc1mspwfeprd02"
# check the settings of the search application
Get-SPEnterpriseSearchStatus -SearchApplication "Search Service Application - FEOshare"
### RE-CONFIGURE TO ALLOCATE SEARCH COMPONENTS ###
# delete the old configuration at the default location (drive C)
$del = Get-SPEnterpriseSearchComponent -SearchTopology $new | ? {$_.Name -eq "IndexComponent1"}
Remove-SPEnterpriseSearchComponent -Identity $del -SearchTopology $new
# create new INDEX components at new location
# must configure RootDirectory https://technet.microsoft.com/en-us/library/jj219721.aspx
New-SPEnterpriseSearchIndexComponent -SearchTopology $new -IndexPartition 0 -SearchServiceInstance $hostWFE1 -RootDirectory "L:\FEOshareSearch2015"
New-SPEnterpriseSearchIndexComponent -SearchTopology $new -IndexPartition 0 -SearchServiceInstance $hostWFE2 -RootDirectory "L:\FEOshareSearchComponents2015"
New-SPEnterpriseSearchIndexComponent -SearchTopology $new -IndexPartition 0 -SearchServiceInstance $hostApp -RootDirectory "I:\FEOshareSearchComponents2015"
# create new QUERY PROCESSING component at new location
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $new -SearchServiceInstance $hostWFE1
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $new -SearchServiceInstance $hostWFE2
### SET THE NEW TOPOLOGY TO BE ACTIVE ###
Set-SPEnterpriseSearchTopology -Identity $new
