Article d’origine publié le lundi 03 décembre 2012

Il existe sans doute déjà des ressources à ce sujet, mais ayant eu des difficultés à les trouver lors de mes recherches je me suis dit qu’un billet serait le bienvenu. Fort heureusement, mon ami Knut B. a eu la bonne idée de me fournir quelques exemples de code PowerShell pour aider à gérer les partitions d’index. En bref, ce qu’il faut faire c’est obtenir une référence à l’instance du service de recherche sur l’hôte où l’on souhaite créer une partition ou un réplica de partition, puis cloner la topologie de recherche existante et y ajouter la partition ou le réplica. Après cela, vous pouvez demander à SharePoint de commencer à cloner la topologie que vous avez créée. En supposant que vous partez d’une batterie de serveurs créée avec l’Assistant Création de batterie, vous aurez une partition d’index sans réplica. Tout d’abord, examinons la procédure d’ajout de nouvelle partition de recherche :

# Spécifiez le nouveau serveur à ajouter et démarrez l’instance du service de recherche :
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nom_du_serveur_sur_lequel_placer_la_nouvelle_partition"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Patientez jusqu’à ce que l’instance du service de recherche soit en cours d’exécution. Exécutez la commande suivante jusqu’à ce que son état indique « En ligne » :
Get-SPEnterpriseSearchServiceInstance -Identity $newssi

Maintenant que vous avez sélectionné le serveur avec lequel vous souhaitez travailler et que vous savez que l’instance du service de recherche s’exécute dessus, vous pouvez cloner la topologie de recherche existante :

# Clonez la topologie existante :
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone

Une fois que vous avez votre clone en main, vous pouvez créer une partition. Les partitions sont simplement numérotées à partir de 0. Par conséquent, en supposant là encore que vous avez utilisé l’Assistant et que vous n’avez qu’une seule partition, le numéro de cette partition est 0. Pour ajouter une seconde partition à notre topologie clonée, nous allons lui affecter le numéro partition 1, puis nous allons configurer notre topologie clonée comme nouvelle topologie de recherche.

# Ajoutez un nouveau composant de recherche et indiquez qu’il est associé à la nouvelle partition d’index de recherche 1 :
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Comme vous pouvez le constater dans l’applet de commande New-SPEnterpriseSearchIndexComponent, nous passons la variable $newssi, qui est celle où nous avons assigné le serveur sur lequel nous voulons créer la partition. Une fois cette partition créée, nous exécutons pratiquement la même commande PowerShell pour créer un réplica de cette partition sur un autre serveur. Comme j’ai déjà expliqué ce qui se passait un peu plus haut, je vais simplement coller le code PowerShell entier, puis le commenter :

# Spécifiez le nouveau serveur à ajouter et démarrez l’instance du service de recherche :
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nom_du_serveur_sur_lequel_placer_le_réplica"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Patientez jusqu’à ce que l’instance du service de recherche soit en cours d’exécution. Exécutez la commande suivante jusqu’à ce que son état indique « En ligne » :
Get-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Clonez la topologie existante :
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone
 
# Ajoutez un nouveau composant de recherche et indiquez qu’il est associé à la nouvelle partition d’index de recherche 1 :
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Deux choses à noter ici :

  1. Dans l’applet de commande Get-SPEnterpriseSearchServiceInstance, j’ai indiqué le serveur sur lequel je souhaite héberger le réplica de partition.
  2. Dans l’applet de commande New-SPEnterpriseSearchIndexComponent, j’ai précisé la partition avec l’indicateur -IndexPartition. Puisque j’ai déjà une partition d’index 1, SharePoint va créer un réplica de cette partition pour moi.

Et voilà. J’espère que ce billet vous aidera à gérer vos partitions de recherche dans SharePoint 2013, et merci encore à Knut d’avoir bien voulu partager ses exemples PowerShell.

Ce billet de blog a été traduit de l’anglais. La version originale est disponible à la page Adding a New Search Partition and Replica in SharePoint 2013