Sometimes the search services gets stuck, following an index reset or a problem with the search component.
When Search service application shows crawl status as “Paused by system” or “External Request”, it can be fixed below:
Display search component status:
$ssa = Get-SPEnterpriseSearchServiceApplication
get-spenterprisesearchstatus -SearchApplication $ssa -Detailed -Text
Resume search component:
(Optional) If not running SharePoint Management:
Add-PSSnappin "Microsoft.SharePoint.PowerShell"
Then:
$ssa = Get-SPEnterpriseSearchServiceApplication
Resume-SPEnterpriseSearchServiceApplication $ssa
Force a index reset (if stuck):
Make sure to reset the Search Host Controller service and timer service before running theses commands.
(Optional) If not running SharePoint Management:
Add-PSSnappin "Microsoft.SharePoint.PowerShell"
Then:
$ssa = Get-SPEnterpriseSearchServiceApplication
$disableAlerts = $true
$ignoreUnreachableServer = $true
$ssa.reset($disableAlerts, $ignoreUnreachableServer)