пятница, 16 мая 2014 г.

Настройка поиска Sharepoint 2013 на отдельном сервере

В этой статье будет кратко описано как добавить к ферме Sharepoint Server 2013 еще один сервер и настроить на нем поиск. Что бы перенести нагрузку на новый сервер.

Поиск в SharePoint 2013 является очень важным и нужным компонентом. С версии 2010 к 2013 произошли изменения. В сети достаточно материалов на эту тему. Начать рекомендую с этой статьи. Мастер настроек, при установке, вообще все сам Вам настроить может.
Но по мере увеличения нагрузки на ферму, Вы можете разнести компоненты на вновь добавленные к ферме сервера. Это называется масштабируемость. При это у Вас есть возможность не только перенести компонент поиска на другой сервер в ферме, но и определить какие части компонента поиска переедут. Т.е. у Вас может быть несколько серверов, которые отвечают за поиск, на которых будут работать разные компоненты поиска. Я Вам продемонстрирую процесс решения задачи по настройке поиска на добавленном к ферме сервере.
Для начала необходимо добавить новый сервер к ферме SharePoint. Этот процесс описан здесь.
Если все хорошо, то теперь, если Вы зайдете в Центр администрирования -> Управление серверами в ферме (http://server:port/_admin/FarmServers.aspx), то вы обнаружите свой новый сервер. Служба поиска на нем не будет включена как и windows службы, которые отвечают за поиск. Самому их включать не надо.
Предположим, что у нас 3 сервера: HOST1, HOSTSQL и добавленный HOST2, на котором мы настроим поиск.

На сервере HOST1 запустим консоль PowerShell и подгрузим оснастки SharePoint:

Add-PSSnapin Microsoft.SharePoint.PowerShell

Либо сразу запустим командную консоль SharePoint 2013:




Я же Вам рекомендую использовать для работы с PowerShell инструмент Windows PowerShell ISE. Узнать подробнее о нем можно здесь.
$Host = "HOST2"
$SearchAppPoolName = "SharePoint_SearchAppPool"
$SearchAppPoolAccountName = "Domain\Account"
$SearchServiceName = "SharePoint_Search_Service"
$SearchServiceProxyName = "SharePoint_Search_Proxy"
$DatabaseName = "SharePoint_Search_AdminDB"






#Создаем пул приложение в IIS
$spAppPool = New-SPServiceApplicationPool -Name $SearchAppPoolName -Account $SearchAppPoolAccountName

#Запускаем экземпляр Службы поиска на указанных серверах

Start-SPEnterpriseSearchServiceInstance $Host -ErrorAction

Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $Host -ErrorAction



#Создаем приложение-службу поиска
$ServiceApplication = New-SPEnterpriseSearchServiceApplication -Partitioned -Name $SearchServiceName -ApplicationPool $spAppPool.Name -DatabaseName $DatabaseName

#Создаем Proxy приложения-службы поиска
New-SPEnterpriseSearchServiceApplicationProxy -Partitioned -Name $SearchServiceProxyName -SearchApplication $ServiceApplication
На HOSTSQL будут созданы несколько БД:

Их можно будет увидеть из веб-интерфейса чуть позже.

Если перейти в приложение-службу через центр администрирования и посмотреть на топологию, то увидим следующее:
Все в порядке. Настраиваем дальше.

#Получаем экземпляр Службы поиска
$SearchServiceInstance = Get-SPEnterpriseSearchServiceInstance -Identity "HOST2"

#Запускаем экземпляр Службы поиска
Start-SPEnterpriseSearchServiceInstance -Identity $SearchServiceInstance

#Получаем приложение-службу поиска
$ssa = Get-SPEnterpriseSearchServiceApplication
#Создаем топологию приложения-службы поиска
$newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa
#Добавляем компоненты в топологию приложения-службы поиска
New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
Set-SPEnterpriseSearchTopology -Identity $newTopology
#Проверяем
Get-SPEnterpriseSearchTopology -SearchApplication $ssa


Отлично, теперь перейдет в настройку приложения-службы поиска через веб-интерфейс.
Если зайти во время настройки, то увидим следующее:
Если все пройдет удачно, то увидим топологию как на картинке ниже:

В веб-интерфейсе приложения-службы поиска можно видеть какой компонент поиска где работает. Так же, как я писал чуть выше, можно посмотреть какие БД SQL Server используются:

Так же можно увидеть, что на HOSTB запущена служба поиска SharePoint.


Готово, теперь необходимо настроить источники и правила обхода. Все эти задачу будут выполняться на другом сервере, что повысит производительность фермы в общем.