Articolo originale pubblicato lunedì 03 dicembre 2012

Credo che siano già disponibili altre risorse su questo argomento ma ho avuto difficoltà a trovarle, e perciò ho pensato di pubblicare qui questo articolo. Fortunatamente il mio amico Knut B. è riuscito a fornirmi dei PowerShell tempo fa, utili per la gestione delle partizioni dell'indice. In breve, ciò che volete fare è ottenere un riferimento all'istanza del servizio di ricerca sull'host in cui volete creare una partizione o una replica della partizione, quindi clonare la topologia di ricerca esistente e aggiungervi la partizione o la replica. Una volta fatto questo, potete informare SharePoint affinché inizi a usare il clone della topologia che avete creato. Se iniziate con una farm creata attraverso la procedura guidata, avrete una partizione dell'indice, che non ha repliche. Vediamo quindi come aggiungere una nuova partizione di ricerca:

# Specificare il nuovo server da aggiungere e avviare l'istanza del servizio di ricerca:
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nameOfServerThatYouWantTheNewPartitionOn"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Attendere che l'istanza sia in esecuzione ed eseguire il comando seguente fino a che lo stato dell'istanza del servizio di ricerca indica “Online”:
Get-SPEnterpriseSearchServiceInstance -Identity $newssi

Ora che avete scelto il server con cui lavorare, e che sapete che su di esso è eseguita l'istanza del servizio di ricerca, potete clonare la topologia di ricerca esistente:

# Clonare la topologia esistente:
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone

Una volta creato il clone, potete creare una nuova partizione. La numerazione delle partizioni inizia da 0; se avete usato la procedura guidata e avete una sola partizione, il numero di questa sarà 0. Per aggiungere una seconda partizione alla topologia clonata, la chiameremo "partizione 1" e imposteremo la topologia clonata come nuova topologia di ricerca.

# Aggiungere un nuovo componente dell'indice e specificare che è associato alla nuova partizione dell'indice 1:
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Come si vede in New-SPEnterpriseSearchIndexComponent, si passa vicino la variabile $newssi, sulla quale abbiamo assegnato il server nel quale vogliamo creare la partizione. Quando la partizione è creata, eseguiamo virtualmente lo stesso PowerShell per creare una replica di quella partizione su un altro server. Dal momento che ho già spiegato tutto in precedenza, mi limiterò a copiare l'intero PowerShell e ad aggiungere i miei commenti:

# Specificare il nuovo server da aggiungere e avviare l'istanza del servizioi di ricerca:
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nameOfServerThatYouWantTheReplicaOn"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Attendere che l'istanza sia in esecuzione ed eseguire il comando seguente fino a che lo stato dell'istanza del servizio di ricerca indica “Online”:
Get-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Clone the existing topology:
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone
 
# Aggiungere un nuovo componente dell'indice e specificare che è associato alla nuova partizione dell'indice 1:
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Le due cose da notare sono:

  1. Nel cmdlet Get-SPEnterpriseSearchServiceInstance indico in quale server voglio ospitare la replica della partizione
  2. Nel cmdlet New-SPEnterpriseSearchIndexComponent avevo indicato la partizione con il flag -IndexPartition. Poiché ho già una partizione dell'indice 1, SharePoint creerà una replica della partizione per conto mio.

È tutto qui. Spero che vi sia utile per gestire le partizioni di ricerca in SharePoint 2013, e grazie ancora a Knut per aver condiviso il suo PowerShell.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Adding a New Search Partition and Replica in SharePoint 2013