Adicionando uma nova partição e réplica de pesquisa no SharePoint 2013

Artigo original publicado na segunda-feira, 3 de dezembro de 2012

Creio que, a esta altura do campeonato, já haja recursos sobre este assunto, mas tive dificuldades em encontrá-los quando procurei em uma ocasião anterior. Por isso, pensei em publicá-los aqui. Por sorte, meu amigo Knut B. foi generoso o suficiente para fornecer alguns códigos de PowerShell que ajudam a gerenciar partições de índice. Resumindo: o que você fará é obter uma referência à instância do serviço de pesquisa no host onde deseja criar uma partição ou réplica de partição. Em seguida, clonará a topologia de pesquisa existente e adicionará a partição ou réplica a ela. Após isso, é possível instruir o SharePoint para que comece a usar o clone da topologia criada. Partindo do pressuposto de que você tenha começado com um farm criado utilizando o assistente de farms, você terá uma partição de índice (sem réplicas). Desse modo, vejamos inicialmente a adição de uma nova partição de pesquisa:

# Especifique o novo servidor que deseja adicionar e inicie a instância do serviço de pesquisa:
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nomeDoServidorNoQualDesejaCriarNovaPartição"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi

# Aguarde até a execução do SSI. Execute o seguinte comando até que o estado do SSI seja “Online”:
Get-SPEnterpriseSearchServiceInstance -Identity $newssi

Agora que você selecionou o servidor com o qual deseja trabalhar e sabe que a instância do serviço de pesquisa está em execução nele, clone a topologia de pesquisa existente:

# Clone a topologia existente:
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone

Após a criação do clone, você poderá criar uma nova partição. As partições são simplesmente numeradas de 0 até o número necessário. Por isso, mais uma vez, supondo que você tenha usado o assistente e tenha uma partição até agora, o número da partição será 0. Para adicionar outra partição à topologia clonada, nós a chamaremos de partição 1 e definiremos a topologia clonada que será a nova topologia de pesquisa.

# Adicione um novo componente de índice e especifique sua associação à nova partição de índice 1:
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Como você pode ver em New-SPEnterpriseSearchIndexComponent, utilizamos a variável $newssi, que é onde atribuímos o servidor no qual desejamos criar a partição. Após a criação da partição, executamos praticamente o mesmo código de PowerShell para criar uma réplica da partição em outro servidor. Como expliquei acima o que está ocorrendo, eu simplesmente colarei todo o código de PowerShell aqui e, em seguida, farei comentários sobre ele:

# Especifique o novo servidor que deseja adicionar e inicie a instância do servidor de pesquisa:
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "NomeDoServidorNoQualDesejaRéplica"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi

# Aguarde pela execução do SSI. Execute o seguinte comando até que o estado do SSI seja “Online”:
Get-SPEnterpriseSearchServiceInstance -Identity $newssi

#Clone a topologia existente:
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone

# Adicione um novo componente de índice e especifique sua associação à nova partição de índice 1:
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Aqui, há dois fatores a serem observados:

  1. No cmdlet Get-SPEnterpriseSearchServiceInstance, indiquei o servidor no qual desejo hospedar a réplica da partição
  2. No cmdlet New-SPEnterpriseSearchIndexComponent cmdlet, indiquei a partição com o sinalizador -IndexPartition. Como já tenho uma partição de índice 1, o SharePoint criará uma réplica dela para mim.

É isso. Espero que este post o ajude a gerenciar suas partições de pesquisa no SharePoint 2013. Mais uma vez, obrigado ao Knut por compartilhar seu código de PowerShell.

Esta é uma postagem de blog traduzida. Consulte o artigo original em Adding a New Search Partition and Replica in SharePoint 2013