Gérer le composant d’index dans SharePoint Server
S’APPLIQUE À :2013 2016 2019 Édition d’abonnement SharePoint dans Microsoft 365
Les procédures et les exemples dans cet article partent du principe que SharePoint Server et l'application Service de recherche sont installés, qu'une topologie de recherche existante est présente et qu'il y a des éléments dans l'index de recherche SharePoint Server. Si SharePoint Server et l'application Service de recherche viennent d'être installés et qu'il n'y a pas de contenu dans l'index de recherche SharePoint Server, appliquez les procédures décrites dans Modifier la topologie de recherche par défaut dans SharePoint Server pour faire monter en charge la topologie de recherche.
Les procédures décrites dans cet article s'appliquent au composant d'index. Pour plus d'informations sur la façon de gérer le composant de traitement de l'analyse, le composant de traitement du contenu, le composant d'analyse, le composant d'administration de la recherche et le composant de traitement des requêtes, voir Gérer les composants de recherche dans SharePoint Server.
La gestion des partitions d'index et des réplicas d'index s'effectue à l'aide de l'applet de commande PowerShell de composant d'index (New-SPEnterpriseSearchIndexComponent). Chaque composant d'index de la topologie de recherche représente un réplica d'index.
Vous divisez l'index de recherche en parties distinctes appelées partitions d'index. Chaque partition d'index est stockée sous forme de jeu de fichiers sur un disque local. Pour monter en charge l'index de recherche, vous devez ajouter une nouvelle partition d'index.
Pour obtenir une tolérance de panne pour l'index de recherche SharePoint Server, vous devez ajouter une copie d'index d'une partition d'index existante à la topologie de recherche. Chaque copie d'index contient les mêmes informations.
Avant de commencer
Avant de commencer, vérifiez les conditions préalables suivantes.
SharePoint Server est installé et une application de service de recherche avec une topologie de recherche est créée.
Le compte d'utilisateur qui exécute les procédures de cet article est membre du groupe Administrateurs de batterie.
Vous avez planifié une topologie de recherche cible et identifié les serveurs sur lesquels vous voulez héberger les partitions d’index et les réplicas d’index.
SharePoint Server est installé sur tous les serveurs qui doivent héberger des composants d'index. Vous pouvez créer des serveurs d'applications ou définir des serveurs d'applications dans un déploiement existant. Les serveurs sont alors ajoutés à la batterie de serveurs et vous êtes administrateur sur tous ces serveurs.
Ajouter un réplica d’index à une partition d’index existante
Vous ajoutez un réplica d’index à la topologie de recherche afin de bénéficier d’une tolérance de panne pour une partition d’index existante. Vous placez les réplicas d'index sur des domaines de défaillance distincts sur des serveurs distincts. Lorsque vous ajoutez un réplica d'index, vous ajoutez un nouveau composant d'index à la topologie de recherche et vous l'associez à la partition d'index dont vous souhaitez créer un réplica.
Importante
Cette procédure fait appel à Microsoft PowerShell. Vous pouvez exécuter les commandes Microsoft PowerShell sur n'importe quel serveur de la batterie. Toutefois, vous devez utiliser le même SharePoint Management Shell pour toutes les commandes Microsoft PowerShell de cette procédure, de façon à pouvoir partager des références d'objets Microsoft PowerShell entre les commandes.
Pour ajouter un réplica d’index
Vérifiez que le compte d’utilisateur qui exécute cette procédure est membre du groupe Administrateurs de batterie.
Démarrez SharePoint Management Shell sur l'un des serveurs de la batterie.
Démarrez une instance du service de recherche sur le serveur sur lequel vous souhaitez créer le réplica d'index et créez une référence à l'ID d'instance du service de recherche. À l'invite de commandes Microsoft PowerShell, tapez la ou les commandes suivantes :
$<host n > = Get-SPEnterpriseSearchServiceInstance -Identity "<Server name>" Start-SPEnterpriseSearchServiceInstance -Identity $<host n >
Où :
$<host n> spécifie la référence d’objet PowerShell pour l’instance de service de recherche.
<Server name> spécifie le serveur sur lequel vous voulez ajouter un composant d'index. L’entrée doit être un GUID valide, au format
12345678-90ab-cdef-1234-567890bcdefgh
; un nom valide d’un serveur (par exemple, myserver1 ) ou une instance d’un objet SearchServiceInstance valide.
Par exemple :
$hostA = Get-SPEnterpriseSearchServiceInstance -Identity "myserver1" Start-SPEnterpriseSearchServiceInstance -Identity $hostA
Patientez jusqu'à ce que l'instance du service de recherche soit en cours d'exécution. À l'invite de commandes Microsoft PowerShell, tapez la commande suivante jusqu'à ce qu'elle renvoie l'état En ligne:
Get-SPEnterpriseSearchServiceInstance -Identity $<host n >
Clonez la topologie de recherche active. À l'invite de commandes Microsoft PowerShell, tapez la ou les commandes suivantes :
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
Ajoutez un nouveau composant d'index et associez-le à une partition. À l'invite de commandes Windows PowerShell, tapez la ou les commandes suivantes :
New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance <host n > -IndexPartition <Index partition number>
Où :
$clone est la topologie clonée que vous modifiez.
$<host n> est la référence d’objet PowerShell à l’instance de service de recherche en cours d’exécution sur le serveur auquel vous souhaitez ajouter le réplica d’index.
<Index partition number> est le numéro de la partition d'index existante dont vous créez un réplica. Par exemple, pour créer un réplica d'index de la partition d'index 0, sélectionnez « 0 » comme valeur de paramètre.
Par exemple :
New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostA -IndexPartition 0
Activez le clone de topologie. À l'invite de commandes Microsoft PowerShell, tapez la ou les commandes suivantes :
Set-SPEnterpriseSearchTopology -Identity $clone
Vérifiez que votre nouvelle topologie est active et que le composant d'index représentant le nouveau réplica d'index a été ajouté. À l'invite de commandes Microsoft PowerShell, tapez la ou les commandes suivantes :
Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
Surveillez la distribution de l'index existant sur le nouveau réplica. Le réplica d'index ajouté sera à l'état Détérioré jusqu'à la fin de la distribution. À l'invite de commandes Microsoft PowerShell, tapez la ou les commandes suivantes :
Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text
Répétez cette commande jusqu'à ce que tous les composants de recherche, y compris le nouveau composant d'index, soient à l'état Actif. Pour un index de recherche volumineux, cela peut nécessiter plusieurs heures.
Ajouter une nouvelle partition d’index
Lorsque vous ajoutez une nouvelle partition d’index, l’index de recherche doit être repartitionné. Selon la taille de l'index de recherche, ce repartitionnement peut prendre plusieurs heures.
Pour ajouter une partition d'index et repartitionner l'index de recherche, vous devez ajouter un nouveau composant de recherche à la topologie de recherche et associer ce composant d'index à un nouveau numéro de partition d'index. L'ajout d'une partition d'index et le repartitionnement de l'index de recherche doivent être effectués en tant que processus distinct, et non en même temps que d'autres modifications de la topologie de recherche.
Vous devez ajouter le même nombre de réplicas d’index à la nouvelle partition d’index qu’aux partitions existantes.
Avant d’ajouter une nouvelle partition d’index à la topologie de recherche et de commencer à repartitionner l’index de recherche :
Sauvegardez l'application de service de recherche et l'index de recherche existant. Voir Sauvegarder les applications Service de recherche dans SharePoint Server.
Vérifiez que la topologie actuellement active est intègre. Affichez l’état de la topologie de recherche dans la page Administration de la recherche de l’Administration centrale ou exécutez l’applet de commande
Get-SPEnterpriseSearchStatus
Microsoft PowerShell .Vérifiez qu’il y a une quantité d’espace disque suffisante sur le serveur où vous ajouterez la partition d’index.
Attention
L'application de service de recherche est suspendue durant le repartitionnement d'index et ne peut pas analyser ou indexer le contenu. Par ailleurs, les utilisateurs ne pourront pas exécuter de requête.
Pour ajouter une partition d’index
Vérifiez que le compte d’utilisateur qui exécute cette procédure est membre du groupe Administrateurs de batterie.
Démarrez SharePoint Management Shell sur l'un des serveurs de la batterie.
Démarrez une instance de service de recherche sur tous les serveurs sur lesquels vous voulez ajouter un réplica d'index pour la nouvelle partition d'index. Vous devez créer une référence d'objet PowerShell à l'instance du service de recherche utilisée ultérieurement dans la procédure. Pour chaque serveur, à l'invite de commandes Microsoft PowerShell, tapez la ou les commandes suivantes :
$<host n > = Get-SPEnterpriseSearchServiceInstance -Identity "<Server name>" Start-SPEnterpriseSearchServiceInstance -Identity $<host n >
Où :
<host n> spécifie la référence d'objet PowerShell pour l'instance du service de recherche.
<Server name> spécifie le serveur sur lequel vous voulez ajouter un composant d'index. L’entrée doit être un GUID valide, au format
12345678-90ab-cdef-1234-567890bcdefgh
; un nom valide d’un serveur (par exemple, myserver1 ) ou une instance d’un objet SearchServiceInstance valide.
Par exemple :
$hostC = Get-SPEnterpriseSearchServiceInstance -Identity "myserver3" Start-SPEnterpriseSearchServiceInstance -Identity $hostC $hostD = Get-SPEnterpriseSearchServiceInstance -Identity "myserver4" Start-SPEnterpriseSearchServiceInstance -Identity $hostD
Patientez jusqu'à ce que les instances du service de recherche soient en cours d'exécution. Pour chaque serveur, à l'invite de commandes Microsoft PowerShell, tapez la commande suivante jusqu'à ce qu'elle renvoie l'état En ligne:
Get-SPEnterpriseSearchServiceInstance -Identity $<host n >
Clonez la topologie de recherche active. À l'invite de commandes Microsoft PowerShell, tapez la ou les commandes suivantes :
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
La commande crée une topologie de recherche de clone qui peut être référencée avec $clone et retourne des informations sur la topologie de clone. Prenez note de l'ID de la topologie clonée, pour le cas où vous devriez annuler le processus de repartitionnement.
Ajoutez une nouvelle partition d'index en ajoutant un ou plusieurs composants d'index et en les associant à la nouvelle partition d'index. Nous vous recommandons de créer le même nombre de réplicas d'index pour la nouvelle partition d'index que pour les partitions existantes. Pour chaque nouveau composant d'index, à l'invite de commandes Windows PowerShell, tapez la ou les commandes suivantes :
New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance <host n > -IndexPartition <Index partition number>
Où :
$clone est la topologie clonée que vous modifiez.
$<host n> spécifie la référence d’objet PowerShell pour l’instance de service de recherche.
<Index partition number> est le numéro de la partition d'index que vous créez. Par défaut, vous disposez d'une partition d'index nommée partition 0. Pour créer une autre partition d'index, attribuez la valeur « 1 » au paramètre IndexPartition, suivie de la valeur « 2 », puis « 3 » et ainsi de suite.
Par exemple, si vous avez une partition d’index existante 0 avec des réplicas d’index sur Host A et Host B et que vous souhaitez ajouter une nouvelle partition d’index avec des réplicas d’index sur Host C et Host D :
New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostC -IndexPartition 1 New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostD -IndexPartition 1
Vérifiez que l'application de service de recherche est en cours d'exécution. À l'invite de commandes Microsoft PowerShell, tapez les commandes suivantes :
$ssa.IsPaused() -ne 0
Si cette commande renvoie la valeur False, l'application de service de recherche est en cours d'exécution. Passez à l'étape 9.
Si cette commande renvoie la valeur True, l'application de service de recherche est suspendue. Passez à l'étape 8.
Si l'application de service de recherche est suspendue, découvrez pourquoi et si vous devez attendre la fin de toutes les opérations avant de pouvoir passer à l'étape 9. Pour plus d'informations, voir Gérer une application de service de recherche suspendue dans SharePoint Server.
Démarrez l’activation de la topologie de clone. Cela démarre l’activation de la topologie qui inclut les nouveaux réplicas d’index associés à la nouvelle partition d’index. Cela démarre le processus de repartitionnement d’index.
Importante
L'application de service de recherche est suspendue durant le repartitionnement d'index et ne peut pas analyser ou indexer le contenu. Par ailleurs, les utilisateurs ne pourront pas exécuter de requête. Vous ne pourrez pas accéder à la console Windows PowerShell sur laquelle la commande d'activation s'exécute.
Notes
[!REMARQUE] La page Administration de la recherche de l'Administration centrale ne signale pas que l'application du service de recherche a été suspendue pour le repartitionnement d'index. Toutefois, tous les composants de traitement des requêtes étant suspendus lorsque vous suspendez l'application de service de recherche, la page Administration de la recherche signalera les erreurs liées aux composants de traitement des requêtes durant le processus.
À l’invite de commandes Windows PowerShell, tapez les commandes suivantes :
$ssa.PauseForIndexRepartitioning() Set-SPEnterpriseSearchTopology -Identity $clone
Surveillez l'avancement du processus de repartitionnement d'index. Cette surveillance ne peut s'effectuer que sur les composants d'index primaire de la topologie existante. Les étapes suivantes montrent comment trouver les composants d'index primaire.
Notes
[!REMARQUE] Vous ne pourrez pas exécuter de commandes dans le SharePoint Management Shell existant tant que l'activation de la topologie, y compris le processus de repartitionnement d'index, ne sera pas terminée. Exécutez les commandes suivantes dans un second SharePoint Management Shell.
Démarrez un second SharePoint Management Shell.
Recherchez le réplica d'index primaire pour chacune des partitions d'index existantes. À l'invite de commandes Windows PowerShell du second SharePoint Management Shell, tapez la ou les commandes suivantes :
$ssa = Get-SPEnterpriseSearchServiceApplication Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text
La commande renvoie une liste de composants d'index et de leurs propriétés. Notez les noms du ou des composants d'index primaire. Il s'agit des composants d'index ayant la propriété Primary: True.
Par exemple, la sortie peut ressembler à ceci. Dans cet exemple, IndexComponent2 est le composant d’index principal :
Name : IndexComponent1 State : Active Primary : False Partition : 0 Host : MyMachine1 Name : Cell:IndexComponent1-SPd32cdffb08a2I.0.0 State : Active Primary : False Partition : 0 Name : IndexComponent2 State : Active Primary : True Partition : 0 Host : MyMachine2 Name : Cell:IndexComponent2-SPd32cdffb08a2I.1.0 State : Active Primary : True Partition : 0
Pour chaque composant d'index primaire, surveillez l'avancement du repartitionnement d'index. À l'invite de commandes Windows PowerShell du second SharePoint Management Shell, tapez la ou les commandes suivantes :
Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Healthreport -Component <Index component name> | ? { ($_.name -match "repart") -or ( $_.name -match "splitting") } | ft -AutoSize Name, Message
Où :
- <Index component name> correspond au nom du composant d'index primaire dont vous souhaitez surveiller l'avancement (par exemple, IndexComponent2).
Surveillez la sortie de la commande pour chaque composant d'index primaire. Celle-ci contient des informations sur l'avancement du repartitionnement de l'index.
Durant la phase initiale du processus de repartitionnement d’index, la sortie ressemblera à ceci :
Name Message ---- ------- repartition_component_state[SP...] Pending
Les partitions d'index sont fractionnées durant la phase principale du processus de repartitionnement d'index. Durant cette phase, la sortie ressemblera à ceci :
Name Message ---- ------- index splitting: current fusion progress[SP...] <Percentage value> index splitting: splitting state [SP...] Index splitter running fusion, building: <Folder> repartition_component_state [SP...] Splitting
La valeur de pourcentage mentionnée dans la sortie indique l’avancement approximatif du processus de repartitionnement.
Répétez cette commande pour tous les composants d’index principaux jusqu’à ce que la sortie des commandes ne retourne plus de valeurs. Cela signifie que le processus de repartitionnement d’index est terminé et que l’index repartitionné sera maintenant répliqué et distribué sur les serveurs. Cela peut prendre plusieurs heures.
Surveillez la progression de la distribution de l'index sur les nouveaux réplicas d'index. Pour cela, vérifiez que votre nouvelle topologie est active et que tous les composants de recherche sont intègres. À l'invite de commandes Windows PowerShell du second SharePoint Management Shell, tapez la ou les commandes suivantes :
Get-SPEnterpriseSearchStatus -SearchApplication $ssa | ft -AutoSize Name, State, Details
Durant la distribution de l'index sur les nouveaux réplicas d'index, les réplicas d'index ajoutés renverront l'état Détérioré. La distribution est terminée quand tous les composants d'index renvoient l'état Actif dans la sortie. Cela peut prendre plusieurs heures.
Notes
[!REMARQUE] Les composants de traitement des requêtes sont suspendus car vous avez suspendu l'application de service de recherche pour le repartitionnement d'index. Dans la sortie, les composants de traitement des requêtes seront à l'état Inconnu.
Dans le SharePoint Management Shell que vous avez utilisé pour démarrer le processus d’activation de topologie, vérifiez que la commande d’activation de topologie de recherche s’est exécutée correctement.
(Facultatif) Redémarrez le service de contrôleur d’hôte de la recherche SharePoint sur tous les serveurs ayant hébergé des composants d’index (représentant un réplica d’index primaire ou tout autre réplica d’index) avant le repartitionnement.
Effectuez cette étape pour obtenir un nombre de documents correct et pour libérer de la mémoire après avoir repartitionné l'index de recherche. Si vous ne le faites pas, il faudra quelques jours et quelques itérations d'indexation pour réduire progressivement l'utilisation de la mémoire et pour obtenir le nombre correct de documents (tel que renvoyé par les invites de commandes PowerShell et sur la page Administration de la recherche de l'Administration centrale).
Notes
Pour éviter les pannes de requête, vérifiez qu'au moins un composant d'index renvoie l'état En cours d'exécution pour chaque partition d'index avant de redémarrer le service Contrôleur d'hôte de recherche SharePoint.
Importante
N'utilisez pas la page Services sur le serveur du site web Administration centrale de SharePoint Server pour redémarrer ce service.
Pour redémarrer le Contrôleur d’hôte de recherche SharePoint, ouvrez une fenêtre d’invite de commandes sur chacun des serveurs qui hébergent des composants d’index pour les partitions d’index existantes.
Pour arrêter le Contrôleur d'hôte de recherche SharePoint, tapez la commande suivante : net stop spsearchhostcontroller
Pour redémarrer le Contrôleur d'hôte de recherche SharePoint, tapez la commande suivante : net start spsearchhostcontroller
Relancez l'application de service de recherche. À l’invite de commandes Windows PowerShell, tapez la ou les commandes suivantes :
$ssa.ResumeAfterIndexRepartitioning()
Annuler le processus de repartitionnement
Si, pour une raison quelconque, vous devez annuler un processus de repartitionnement en cours, appliquez la procédure suivante.
Pour annuler le processus de repartitionnement
Démarrez un nouveau SharePoint Management Shell sur le serveur sur lequel vous avez exécuté la commande d'activation de topologie.
Récupérez l’ID de la topologie active. À l’invite de commandes Windows PowerShell, tapez la ou les commandes suivantes :
$activating = Get-SPEnterpriseSearchTopology -Identity <Id of the activating topology> -SearchApplication $ssa
Où :
- <Id of the activating topology> correspond à l'identité (GUID) du clone de topologie que vous avez noté lors du clonage de la topologie de recherche.
Annulez l'activation de la topologie. À l’invite de commandes Windows PowerShell, tapez la ou les commandes suivantes :
$activating.CancelTopologyActivation()
Supprimer un composant d’index
Si vous avez plusieurs réplicas d'index actifs pour une partition d'index, vous pouvez en supprimer un en appliquant la procédure Supprimer un composant de recherche de l'article Gérer les composants de recherche dans SharePoint Server.
Vous ne pouvez pas supprimer le dernier réplica d'index d'une partition d'index à l'aide de cette procédure. Si vous devez supprimer tous les réplicas d’index de la topologie de recherche, vous devez supprimer et recréer l’application de service de recherche et créer une toute nouvelle topologie de recherche avec le nombre de partitions d’index souhaité.
Déplacer un composant d’index
Si vous souhaitez déplacer un réplica d’index d’un serveur à un autre, nous vous recommandons d’ajouter un nouveau composant d’index à la topologie de recherche avant de supprimer l’ancien composant d’index.
Pour déplacer un composant d'index
Ajoutez un nouveau composant d'index au serveur vers lequel vous souhaitez déplacer le réplica d'index. Clonez la topologie de recherche, ajoutez un nouveau réplica d'index, attendez que l'index soit répliqué sur le nouveau réplica d'index et activez la topologie de recherche. Voir Ajouter un réplica d'index à une partition d'index existante.
Attendez que le nouveau réplica d'index soit prêt à répondre aux requêtes. Affichez l’état de la topologie de recherche dans la page Administration de la recherche dans l’Administration centrale ou exécutez l’applet de commande
Get-SPEnterpriseSearchStatus
Windows PowerShell . Avant de poursuivre, vous devez vous assurer que le réplica d'index que vous avez ajouté est Actif.Clonez de nouveau la topologie de recherche.
Supprimez le réplica d'index superflu en supprimant le composant d'index. Voir la procédure Supprimer un composant de recherche de l'article Gérer les composants de recherche dans SharePoint Server.
Réactivez la topologie de recherche.
Ceci garantit la tolérance de panne de l’index de recherche pendant la suppression du réplica d’index.