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

[玩转系统] 使用 PowerShell 创建 SharePoint 2013 搜索服务应用程序

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

使用 PowerShell 创建 SharePoint 2013 搜索服务应用程序


尽管我们可以从管理中心创建 SharePoint 2013 搜索服务应用程序,但我更喜欢通过 PowerShell 创建它,因为它能够删除搜索服务数据库名称中的 GUID。另外,从 SharePoint 2013 管理中心来看,不可能修改搜索拓扑!因此,PowerShell 是在 SharePoint 2013 中创建/配置搜索的理想方法。

在 PowerShell 中创建搜索服务应用程序包括以下 7 个步骤:

  1. 为搜索服务应用程序创建应用程序池
  2. 在服务器上启动搜索服务实例
  3. 创建搜索服务应用程序
  4. 创建搜索服务应用程序代理
  5. 创建新的搜索服务拓扑
  6. 创建搜索的所有六个组件并将它们分配给搜索拓扑
  7. 激活搜索拓扑

用于为 SharePoint 2013 创建搜索服务应用程序的 PowerShell 脚本:

以下是用于在 SharePoint 2013 中创建搜索服务应用程序的 PowerShell 脚本。


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

# Specify the Settings for the Search Service Application
$ServerName = (Get-ChildItem env:computername).value
$IndexLocation = "D:\Search Index"
$SearchServiceApplicationName = "Search Service Application"
$SearchServiceApplicationProxyName = "Search Service Application Proxy"
$SearchDatabaseServer = "G1SP2013"
$SearchServiceApplicationDatabase = "SP2013_Search_Service" 

$SearchAppPoolName = "Search Service Application pool"
$SearchAppPoolAccount =  Get-SPManagedAccount "Crescent\SP13_Search"

#Check if Managed account is registered already
Write-Host -ForegroundColor Yellow "Checking if the Managed Accounts already exists"
$SearchAppPoolAccount = Get-SPManagedAccount -Identity $SearchAppPoolAccount -ErrorAction SilentlyContinue
If ($SearchAppPoolAccount -eq $null)
{
    Write-Host "Please Enter the password for the Service Account..."
    $AppPoolCredentials = Get-Credential $SearchAppPoolAccount
    $SearchAppPoolAccount = New-SPManagedAccount -Credential $AppPoolCredentials
} 

#*** Step 1: Create Application Pool for Search Service Application **** 
#Get the existing Application Pool
$SearchServiceAppPool = Get-SPServiceApplicationPool -Identity $SearchAppPoolName -ErrorAction SilentlyContinue
#If Application pool Doesn't exists, Create it
if (!$SearchServiceAppPool)
{ 
    $SearchServiceAppPool = New-SPServiceApplicationPool -Name $SearchAppPoolName -Account $SearchAppPoolAccount 
    write-host "Created New Application Pool" -ForegroundColor Green
}

#*** Step 2: Start Search Service Instances ***
Start-SPEnterpriseSearchServiceInstance $ServerName -ErrorAction SilentlyContinue
Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $ServerName -ErrorAction SilentlyContinue

#*** Step 3: Create Search Service Application **** 
# Get the Search Service Application
$SearchServiceApplication = Get-SPEnterpriseSearchServiceApplication -Identity $SearchServiceApplicationName -ErrorAction SilentlyContinue
# Create the Search Service Application, If it doesn't exists! 
if(!$SearchServiceApplication)
{
    $SearchServiceApplication = New-SPEnterpriseSearchServiceApplication -Name $SearchServiceApplicationName -ApplicationPool $SearchServiceAppPool -DatabaseServer $SearchDatabaseServer -DatabaseName $SearchServiceApplicationDatabase
    write-host "Created New Search Service Application" -ForegroundColor Green
}

#*** Step 4: Create Search Service Application Proxy **** 
 #Get the Search Service Application Proxy
 $SearchServiceAppProxy = Get-SPEnterpriseSearchServiceApplicationProxy -Identity $SearchServiceApplicationProxyName -ErrorAction SilentlyContinue
 # Create the Proxy, If it doesn't exists! 
if(!$SearchServiceAppProxy)
{
    $SearchServiceAppProxy = New-SPEnterpriseSearchServiceApplicationProxy -Name $SearchServiceApplicationProxyName -SearchApplication $SearchServiceApplication 
    write-host "Created New Search Service Application Proxy" -ForegroundColor Green
}

#*** Step 5: Create New Search Topology 
$SearchServiceInstance = Get-SPEnterpriseSearchServiceInstance -Local
#To Get Search Service Instance on Other Servers: use - $SearchServiceAppSrv1 = Get-SPEnterpriseSearchServiceInstance -Identity "<Server Name>"

# Create New Search Topology 
$SearchTopology =  New-SPEnterpriseSearchTopology -SearchApplication $SearchServiceApplication

#*** Step 6: Create Components of Search

New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $SearchTopology -SearchServiceInstance $SearchServiceInstance

New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $SearchTopology -SearchServiceInstance $SearchServiceInstance

New-SPEnterpriseSearchCrawlComponent -SearchTopology $SearchTopology -SearchServiceInstance $SearchServiceInstance

New-SPEnterpriseSearchAdminComponent -SearchTopology $SearchTopology -SearchServiceInstance $SearchServiceInstance

#Prepare Index Location
Remove-Item -Recurse -Force -LiteralPath $IndexLocation -ErrorAction SilentlyContinue
MKDIR -Path $IndexLocation -Force

#Create Index and Query Components
New-SPEnterpriseSearchIndexComponent -SearchTopology $SearchTopology -SearchServiceInstance $SearchServiceInstance -RootDirectory $IndexLocation 

New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $SearchTopology -SearchServiceInstance $SearchServiceInstance

#*** Step 7: Activate the Toplogy for Search Service ***
$SearchTopology.Activate() # Or Use: Set-SPEnterpriseSearchTopology -Identity $SearchTopology

这是创建的搜索中心拓扑:

[玩转系统] 使用 PowerShell 创建 SharePoint 2013 搜索服务应用程序

正如您在上面的屏幕中看到的,配置搜索服务应用程序创建了 4 个数据库:我将它们命名如下:

  • SP2013_Search_Service - 搜索服务管理数据库存储配置和拓扑(可能更好:SP2013_Search_Service_AdminDB”)
  • SP2013_Search_Service_AnalyticReporting - 存储使用情况分析报告的结果。
  • SP2013_Search_Service_CrawlStore - 爬网数据库包含有关已爬网项目的详细跟踪和历史信息
  • SP2013_Search_Service_LinksStore - 链接数据库,存储内容处理组件提取的信息以及搜索项的点击信息。

上面的脚本使用 PowerShell 在 SharePoint 2013 中为独立环境创建一个搜索服务应用程序。如果您正在寻找在多服务器场中创建 SharePoint 搜索服务应用程序,请参阅:在 SharePoint 2016 多服务器场中创建和配置搜索服务应用程序

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

取消回复欢迎 发表评论:

关灯