none
Развертывание поиска в sharepoint 2019 RRS feed

  • Вопрос

  • Всем добрый день!
    Выполняю развертку поиска в sharepoint 2019.

    Топология серверов Shared Roles, на сервере Application выполняю скрипт:

    # Get App Pool
    $saAppPoolName = Get-SPServiceApplicationPool "ServiceApplicationPool"
    
    # Search Specifics, we are single server farm
    $searchServerName = (Get-ChildItem env:computername).value
    $serviceAppName = "Приложение службы поиска"
    $searchDBName = "SearchService_DB"
    $databaseServer = "sharepointsql"
    
    # Grab the Appplication Pool for Service Application Endpoint
    $saAppPool = Get-SPServiceApplicationPool $saAppPoolName
    
    # Start Search Service Instances
    Write-Host "Запуск экземпляров службы поиска..."
    Start-SPEnterpriseSearchServiceInstance $searchServerName
    Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $searchServerName
    
    # Create the Search Service Application and Proxy
    Write-Host "Создание службы поиска приложений и прокси..."
    $searchServiceApp = New-SPEnterpriseSearchServiceApplication -Name $serviceAppName -ApplicationPool $saAppPoolName -DatabaseName $searchDBName -DatabaseServer $databaseServer
    $searchProxy = New-SPEnterpriseSearchServiceApplicationProxy -Name "Приложение службы поиска прокси" -SearchApplication $searchServiceApp
    
    # Clone the default Topology (which is empty) and create a new one and then activate it
    Write-Host "Настройка топологии компонента поиска"
    $clone = $searchServiceApp.ActiveTopology.Clone()
    $searchServiceInstance = Get-SPEnterpriseSearchServiceInstance
    New-SPEnterpriseSearchAdminComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    New-SPEnterpriseSearchContentProcessingComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    New-SPEnterpriseSearchAnalyticsProcessingComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance 
    New-SPEnterpriseSearchCrawlComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance 
    New-SPEnterpriseSearchIndexComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    New-SPEnterpriseSearchQueryProcessingComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    $clone.Activate()


    Скрипт выполнился до части:

    # Clone the default Topology (which is empty) and create a new one and then activate it
    Write-Host "Настройка топологии компонента поиска"
    $clone = $searchServiceApp.ActiveTopology.Clone()
    $searchServiceInstance = Get-SPEnterpriseSearchServiceInstance
    New-SPEnterpriseSearchAdminComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    New-SPEnterpriseSearchContentProcessingComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    New-SPEnterpriseSearchAnalyticsProcessingComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance 
    New-SPEnterpriseSearchCrawlComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance 
    New-SPEnterpriseSearchIndexComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    New-SPEnterpriseSearchQueryProcessingComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    $clone.Activate()


    При выполнении команды:

    # Clone the default Topology (which is empty) and create a new one and then activate it
    Write-Host "Настройка топологии компонента поиска"
    $clone = $searchServiceApp.ActiveTopology.Clone()
    $searchServiceInstance = Get-SPEnterpriseSearchServiceInstance
    New-SPEnterpriseSearchAdminComponent –SearchTopology $clone -SearchServiceInstance $searchServiceInstance

    Выходит ошибка:

    New-SPEnterpriseSearchAdminComponent : Не удается преобразовать "System.Object[]" в тип "Microsoft.Office.Server.Search
    .Cmdlet.SearchServiceInstancePipeBind", необходимый для параметра "SearchServiceInstance". Указанный метод не поддерживается.
    строка:1 знак:84
    + ...  –SearchTopology $clone -SearchServiceInstance $searchServiceInstance
    +                                                    ~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [New-SPEnterpriseSearchAdminComponent], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.Office.Server.Search.Cmdlet.NewSearchAdminComponent


    Пробовал выполнить немного по другому:

    New-SPEnterpriseSearchAdminComponent -SearchTopology $clone -SearchServiceInstance Get-SPEnterpriseSearchServiceInstance

    Снова вышла ошибка:

    New-SPEnterpriseSearchAdminComponent : Экземпляр службы поиска не найден на сервере "Get-SPEnterpriseSearchServiceInstance".
    строка:1 знак:1
    + New-SPEnterpriseSearchAdminComponent -SearchTopology $clone -SearchSe ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidData: (Microsoft.Offic...hAdminComponent:NewSearchAdminComponent) [New-SPEnterpriseSearchAdminComponent], KeyN
       otFoundException
        + FullyQualifiedErrorId : Microsoft.Office.Server.Search.Cmdlet.NewSearchAdminComponent

    Может быть кто-нибудь сталкивался с данной проблемой?

    Помогите разобраться, заранее спасибо!


    23 июня 2019 г. 10:30

Ответы

  • Я в таком случае, в ЦА-Управление приложениями службами:

    1. Удалял приложение службы поиска с удалением всех данных

    2. Создавал заново (с использованием SharePoint Web Services Default).

    3. Перезапускал службы поиска SPSearchHostController и OSearch16.

    и алга!!!

    PowerShell использую только для очень тонкой настройки, пример - настроить службу поиска на два сервера. В основном работаю через ЦА.

    • Помечено в качестве ответа vladimir8505 26 июня 2019 г. 8:34
    24 июня 2019 г. 9:39
  • antsv создать службу поиска с помощью ЦА тоже подойдет, но там нельзя задать имена баз.

    Нашел сайт Настройка поиска Sharepoint 2013 на отдельном сервере , немного добавив изменения в скрипт, создал службу поиска.

    Проверил на сервере переднего плана Front-End, службы поиска остановлены, работают только на сервере App.

    Скрипт приложил:

    $gh = "SHPT3"
    $saAppPoolName = Get-SPServiceApplicationPool "ServiceApplicationPool"
    $SearchServiceName = "Приложение службы поиска"
    $SearchServiceProxyName = "Приложение службы поиска прокси"
    $DatabaseName = "SharePointSearch_DB"
    $databaseServer = "sharepointsql"

    #Создаем пул приложение в IIS
    $spAppPool = Get-SPServiceApplicationPool $saAppPoolName

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

    Start-SPEnterpriseSearchServiceInstance $gh -ErrorAction

    Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $gh -ErrorAction

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

    #Создаем Proxy приложения-службы поиска
    New-SPEnterpriseSearchServiceApplicationProxy -Name $SearchServiceProxyName -SearchApplication $ServiceApplication

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

    #Запускаем экземпляр Службы поиска
    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
    • Помечено в качестве ответа vladimir8505 26 июня 2019 г. 8:34
    • Изменено vladimir8505 26 июня 2019 г. 8:39
    26 июня 2019 г. 8:33

Все ответы

  • Нашел исправление на сайте: http://shokochino-sharepointexperience.blogspot.com/2013/11/search-service-application-cannot.html
    поправив команду:
    $ SearchServiceInstance = Get-SPEnterpriseSearchServiceInstance -Local
    после чего, установка успешно завершилась.

    На севере application, где выполнялись команды развертыванию поиска, все успешно установилось, службы поиска успешно запущены, но в центре администрирования, в приложении поиска отображается бесконечная загрузка (приложил ниже)

    Поиск

    Проверил на сервере переднего плана Front-End, там службы поиска SPSearchHostController и OSearch16 остановлены. Это так и должно?

     
    23 июня 2019 г. 13:04
  • На сервере app  поднимается служба search? Рискну предположить, что Minrole влияет на все настройки.

    Попробуйте сменить роль APP на APP+Search через центр администрирования или командой PowerShell.

    Настройка служб поиска проводилась для APP, поэтому на вебсервере службы отключены*. Так и должно.
    • Изменено antsv 24 июня 2019 г. 8:38
    • Предложено в качестве ответа Mikhail Zhuikov 24 июня 2019 г. 9:18
    • Отменено предложение в качестве ответа Mikhail Zhuikov 26 июня 2019 г. 8:38
    24 июня 2019 г. 8:26
  • На сервере app  поднимается служба search? Рискну предположить, что Minrole влияет на все настройки.

    Попробуйте сменить роль APP на APP+Search через центр администрирования или командой PowerShell.

    Настройка служб поиска проводилась для APP, поэтому на вебсервере службы отключены*. Так и должно.

    Да, совершенно верно, search поднимается на app сервере. Проверил, на сервере app, где развертывался поиск, установлена роль "Приложение с поддержкой поиска"

    Сейчас у меня отображается так:


    24 июня 2019 г. 9:09
  • Я в таком случае, в ЦА-Управление приложениями службами:

    1. Удалял приложение службы поиска с удалением всех данных

    2. Создавал заново (с использованием SharePoint Web Services Default).

    3. Перезапускал службы поиска SPSearchHostController и OSearch16.

    и алга!!!

    PowerShell использую только для очень тонкой настройки, пример - настроить службу поиска на два сервера. В основном работаю через ЦА.

    • Помечено в качестве ответа vladimir8505 26 июня 2019 г. 8:34
    24 июня 2019 г. 9:39
  • 2. Создавал заново (с использованием SharePoint Web Services Default).


    Но тогда в этом случае, Sharepoint создаст кривые имена баз, я хотел все сделать с нормальными именами. 
    Еще обратил внимание, на сервере App отключил брандмауер и службы на сервере Front-End запустились без проблем, поиск запустился. Но я не думаю, что так должно работать. 
    Попробую сегодня сделать по вашему варианту, пересоздать службу поиска и затем отпишусь.
    24 июня 2019 г. 10:01
  • antsv создать службу поиска с помощью ЦА тоже подойдет, но там нельзя задать имена баз.

    Нашел сайт Настройка поиска Sharepoint 2013 на отдельном сервере , немного добавив изменения в скрипт, создал службу поиска.

    Проверил на сервере переднего плана Front-End, службы поиска остановлены, работают только на сервере App.

    Скрипт приложил:

    $gh = "SHPT3"
    $saAppPoolName = Get-SPServiceApplicationPool "ServiceApplicationPool"
    $SearchServiceName = "Приложение службы поиска"
    $SearchServiceProxyName = "Приложение службы поиска прокси"
    $DatabaseName = "SharePointSearch_DB"
    $databaseServer = "sharepointsql"

    #Создаем пул приложение в IIS
    $spAppPool = Get-SPServiceApplicationPool $saAppPoolName

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

    Start-SPEnterpriseSearchServiceInstance $gh -ErrorAction

    Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $gh -ErrorAction

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

    #Создаем Proxy приложения-службы поиска
    New-SPEnterpriseSearchServiceApplicationProxy -Name $SearchServiceProxyName -SearchApplication $ServiceApplication

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

    #Запускаем экземпляр Службы поиска
    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
    • Помечено в качестве ответа vladimir8505 26 июня 2019 г. 8:34
    • Изменено vladimir8505 26 июня 2019 г. 8:39
    26 июня 2019 г. 8:33