当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 启动 SharePoint 搜索爬网

作者:精品下载站 日期:2024-12-14 13:42:18 浏览:15 分类:玩电脑

使用 PowerShell 启动 SharePoint 搜索爬网


由于某些原因,计划的 SharePoint 搜索爬网未触发。因此,我使用此 PowerShell 脚本和 Windows 任务计划程序来触发增量爬网。

[玩转系统] 使用 PowerShell 启动 SharePoint 搜索爬网

使用 PowerShell 启动 SharePoint 搜索完整/增量爬网:


Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue

#Get the search service application
$SSA = Get-SPEnterpriseSearchServiceApplication -Identity "Search Service Application" 

#Get the Local SharePoint sites content source
$ContentSource = $SSA | Get-SPEnterpriseSearchCrawlContentSource -Identity "Local SharePoint sites"

#Check if Crawler is not already running
if($ContentSource.CrawlState -eq "Idle")
{
    Write-Host "Starting Incremental Crawl..."            
    $ContentSource.StartIncrementalCrawl()
    #$ContentSource.StartFullCrawl();
    #$ContentSource.PauseCrawl()
    #$ContentSource.StopCrawl()
}
else
{
   Write-Host "Another Crawl is already running!"
   Write-Host "NAME: ", $ContentSource.Name, " - ", $ContentSource.CrawlStatus
}   

我们还可以使用这一行 PowerShell 脚本在 SharePoint 2013 或 SharePoint 2010 中启动/停止搜索爬网:


Get-SPEnterpriseSearchCrawlContentSource -SearchApplication "Search Service Application" | where-object { ($_.Name -eq "Local SharePoint Sites") -and ($_.CrawlStatus -eq "idle") } | foreach { $_.StartIncrementalCrawl() }

使用 PowerShell 在 MOSS 2007 中启动增量爬网:


[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search")

$ServerContext = [Microsoft.Office.Server.ServerContext]::Default
$context =  [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($ServerContext) 

$SSPContent = new-object Microsoft.Office.Server.Search.Administration.Content($context) 
$SSPContentSources =  $SSPContent.ContentSources 

foreach ($ContentSource in $SSPContentSources) 
{ 
  if ($ContentSource.Name -eq "Local Office SharePoint Server sites")
  {
    Write-Host "NAME: ", $ContentSource.Name, " - ", $ContentSource.CrawlStatus
    if ($ContentSource.CrawlStatus -eq [Microsoft.Office.Server.Search.Administration.CrawlStatus]::Idle)
    {
     Write-Host "Starting Incremental crawl"
       $ContentSource.StartIncrementalCrawl();
    }
    else
    {
       Write-Host "Another Crawl is already running!"
    }
  }
}

当用户需要每 15 分钟运行一次增量爬网时,这非常有用!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯