Service Application之配置Search Service Application
Search Service Application负责在SharePoint 中提供类似于百度或者谷歌的搜索服务,本章介绍如何创建手动和使用脚本创建搜索服务应用程序。
后续还会继续介绍如何根据如何根据用户数预估搜索服务程序的规模和配置。
以及如何建立单独的搜索场。
使用Web界面创建Search Service Application
-
用户必须是SharePoint Farm Administrator
-
以farm 管理员登录SharePoint服务器,然后开始->SharePoint 2016 Central Administration或者以Farm Administrator登录任意机器(不需要是SharePoint服务器),在IE中直接输入管理中心的URL即可。
-
找到Application Management->Manage Service Applications
-
左上角,点击New,选择Search Service Application
-
输入名字,2个应用程序池的名字或者 用默认的,账号也用当前Farm Account或者单独的服务账号。
-
等待执行结束
如果要使用命令行创建Search Service Application,则需要按照下面步骤执行
这里生成的Search Service Application是最简单的,每个组件都只有一个,且分布在一台服务器上。
-
用户必须是SharePoint Farm Administrator
-
以farm 管理员登录SharePoint服务器,然后开始->SharePoint 2016 Management PowerShell,右键以管理员权限执行
-
创建Search Admin Web Service的应用程序池, Search Admin Web Service是专用于管理Search Service Application的服务,一般是一个Search Service Application对应一个Search Admin Web Service
# Name Application Pool
$SearchAppPoolName = "Search Service App Pool"
# Names for SA
$serviceAppName = "Search Service Application"
$SearchAppPoolAccountName = "contoso\spsvc"
# Application Pool for Search SA
$AppPool = New-SPServiceApplicationPool -Name $SearchAppPoolName -Account $SearchAppPoolAccountName
- 启动Search服务实例
Get-SPEnterpriseSearchServiceInstance -Local | Start-SPEnterpriseSearchServiceInstance
Get-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance -Local | Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance
反复查看2个服务,直到都已经启动
这里场里就1台服务器,如果有多台,则需要每一台上都执行这个步骤
- 创建Search Service Application
$searchAppName = "Search Service Application 2"
$searchDBName = "SearchServiceDB2"
$sa = New-SPEnterpriseSearchServiceApplication -Name $serviceAppName -DatabaseName $searchDBName –ApplicationPool $AppPool
此时如果查看的话,可以看到界面上只有一个Search Service Application和对应的Administration Web Service,相应的Proxy还没创建出来。
- 创建对应的Search Service Application Proxy
New-SPEnterpriseSearchServiceApplicationProxy -Name "Search Service Application Proxy" -SearchApplication $sa
执行之后,相应的Proxy也创建出来了。
不过此时如果点进去的话,会发现还没有任何组件。这个Search Service Application还是空的。只有DB是已经创建好的。
- 接下来需要创建相关的各个组件,这个架构比较简单,包含1个爬网,1个内容处理,1个索引组件,1个查询以及1个处理分析组件。关于SharePoint Search的架构和具体原理,稍后会单独有一个文章分析。
- 需要注意的是,创建或者修改Search Service Application的架构时,需要先复制一份当前的拓扑,在这个拓扑上修改,修改之后将修改后的拓扑设置为Search Service Application的实际拓扑,所做的修改才会真正实施到SharePoint场里,否则只会保存在内存中,关闭PowerShell之后,相关内容就丢失了。
首先获得当前使用的拓扑的克隆
$clone = $sa.ActiveTopology.Clone()
9.添加1个Search Admin组件
$searchServiceInst = Get-SPEnterpriseSearchServiceInstance -local
New-SPEnterpriseSearchAdminComponent -SearchTopology $clone -SearchServiceInstance $searchServiceInst
创建之后,会马上返回创建的Search Admin组件信息
- 内容处理组件
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $searchServiceInst
- 分析组件
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $clone -SearchServiceInstance $searchServiceInst
12.爬网组件
New-SPEnterpriseSearchCrawlComponent -SearchTopology $clone -SearchServiceInstance $searchServiceInst
13.索引组件
New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $searchServiceInst -IndexPartition 0 -RootDirectory C:\Index\
文件夹C:\Index必须提前创建好
- 查询组件
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $clone -SearchServiceInstance $searchServiceInst
如果这个时候查看拓扑$clone,可以看到各个组件已经生成并添加到这个拓扑
但是如果此时查看Search Service Application的当前ActiveTopology,可以看到还是空的。这是因为为$clone Topology添加的各个组件都还只存在于内存中,还没有被激活并真正部署到场里。
15.激活拓扑
$clone.Activate()
此时再去Search Service Application管理界面查看,可以看到相关组件已经正常部署。