Gestire il componente di indicizzazione in SharePoint Server

 

**Si applica a:**SharePoint Server 2013, SharePoint Server 2016

**Ultima modifica dell'argomento:**2018-03-07

Sintesi: informazioni su come e quando utilizzare Windows PowerShell per implementare la scalabilità orizzontale dell'indice di ricerca in SharePoint Server aggiungendo un componente di indicizzazione per creare una replica o una partizione di indice aggiuntiva.

Nelle procedure e negli esempi di questo articolo si presuppone che siano installati SharePoint Server e l'applicazione del servizio di ricerca, che sia disponibile una topologia di ricerca e che l'indice di ricerca SharePoint Server non sia vuoto. Se SharePoint Server e l'applicazione del servizio di ricerca sono stati appena installati e non è presente contenuto nell'indice di ricerca di SharePoint Server, eseguire le procedure descritte in Modificare la topologia di ricerca predefinita in SharePoint Server per implementare la scalabilità orizzontale della topologia di ricerca.

Le procedure illustrate in questo articolo si applicano al componente di indicizzazione. Per informazioni su come gestire i componenti di elaborazione dell'analisi, di elaborazione del contenuto, di ricerca per indicizzazione, di amministrazione della ricerca e di elaborazione delle query, vedere Gestire i componenti di ricerca in SharePoint Server.

Per gestire sia le partizioni che le repliche di indice, è necessario utilizzare il cmdlet di PowerShell (New-SPEnterpriseSearchIndexComponent) del componente di indicizzazione. Ogni componente di indicizzazione nella topologia di ricerca rappresenta una replica di indice.

Dividere l'indice di ricerca in parti discrete denominate partizioni di indice. Ogni partizione di indice è archiviata come insieme di file in un disco locale. Per implementare la scalabilità orizzontale dell'indice di ricerca, è necessario aggiungere una nuova partizione di indice.

Per ottenere la tolleranza di errore per l'indice di ricerca SharePoint Server, aggiungere alla topologia di ricerca una replica di indice di una partizione di indice esistente. In ogni replica di indice sono contenute le stesse informazioni.

Contenuto dell'articolo:

  • Prima di iniziare

  • Aggiungere una replica di indice a una partizione di indice esistente

  • Aggiungere una nuova partizione di indice

  • Annullare il processo di ripartizionamento

  • Rimuovere un componente di indicizzazione

  • Spostare un componente di indicizzazione

Prima di iniziare

Prima di iniziare, verificare i prerequisiti seguenti.

  • È necessario che sia stato installato SharePoint Server e sia stata creata un'applicazione del servizio di ricerca con una topologia di ricerca.

  • L'account utente utilizzato per eseguire le procedure illustrate in questo articolo deve essere membro del gruppo Amministratori farm.

  • Deve essere stata pianificata una topologia di ricerca di destinazione e devono essere stati definiti i server in cui devono essere ospitate le partizioni e le repliche di indice.

  • SharePoint Server deve essere installato in tutti i server in cui si desidera ospitare componenti di indicizzazione. È possibile creare nuovi server applicazioni o definire server applicazioni in una distribuzione esistente. I server vengono aggiunti alla farm ed è necessario disporre di diritti di amministratore per tutti questi server.

Aggiungere una replica di indice a una partizione di indice esistente

Aggiungendo una replica di indice alla topologia di ricerca è possibile ottenere la tolleranza di errore per una partizione di indice esistente. Posizionare le repliche di indice in domini di errore separati in server separati. Quando si aggiunge una replica di indice, è necessario aggiungere un nuovo componente di indicizzazione alla topologia di ricerca e associarlo alla partizione di indice di cui si desidera creare una replica.

Importante

In questa procedura viene utilizzato Microsoft PowerShell. È possibile eseguire i comandi di Microsoft PowerShell in qualsiasi server della farm. Utilizzare tuttavia la stessa sessione di SharePoint Management Shell per tutti i comandi di Microsoft PowerShell della procedura in modo da poter condividere i riferimenti dell'oggetto Microsoft PowerShell tra i comandi.

Per aggiungere una replica di indice

  1. Verificare che l'account utente che sta eseguendo la procedura sia membro del gruppo Amministratori farm.

  2. Avviare SharePoint Management Shell in uno dei server della farm.

  3. Avviare un'istanza del servizio di ricerca nel server in cui si desidera creare la replica di indice e creare un riferimento all'ID dell'istanza del servizio di ricerca. Al prompt dei comandi di Microsoft PowerShell digitare i comandi seguenti:

    $<host n> = Get-SPEnterpriseSearchServiceInstance -Identity "<Server name>"
    Start-SPEnterpriseSearchServiceInstance -Identity $<host n>
    

    Dove:

    • <host n> specifica il riferimento dell'oggetto PowerShell per l'istanza del servizio di ricerca.

    • <Server name> specifica il server in cui si desidera aggiungere un componente di indicizzazione. L'input deve essere un GUID valido nel formato 12345678-90ab-cdef-1234-567890bcdefgh, un nome valido di un server, ad esempio myserver1, oppure un'istanza di un oggetto SearchServiceInstance valido.

    Ad esempio:

    $hostA = Get-SPEnterpriseSearchServiceInstance -Identity "myserver1"
    Start-SPEnterpriseSearchServiceInstance -Identity $hostA
    
  4. Attendere che sia in esecuzione l'istanza del servizio di ricerca. Al prompt dei comandi di Microsoft PowerShell digitare il comando seguente e attendere che venga restituito lo stato Online:

    Get-SPEnterpriseSearchServiceInstance -Identity $<host n>
    
  5. Clonare la topologia di ricerca attiva. Al prompt dei comandi di Microsoft PowerShell digitare i comandi seguenti:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
    $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
    
  6. Aggiungere un nuovo componente di indicizzazione e associarlo a una partizione. Al prompt dei comandi di Windows PowerShell digitare i comandi seguenti:

    New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance <host n> -IndexPartition <Index partition number>
    

    Dove:

    • $clone è la topologia clonata che si desidera modificare.

    • <host n> è il riferimento dell'oggetto PowerShell all'istanza del servizio di ricerca in esecuzione nel server in cui si desidera aggiungere la replica di indice.

    • <Index partition number> è il numero della partizione di indice esistente per cui si desidera creare una replica. Per creare ad esempio una replica di indice della partizione di indice 0, scegliere "0" come valore del parametro.

    Ad esempio:

    New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostA -IndexPartition 0
    
  7. Attivare la topologia clone. Al prompt dei comandi di Microsoft PowerShell digitare i comandi seguenti:

    Set-SPEnterpriseSearchTopology -Identity $clone
    
  8. Verificare che la nuova topologia sia attiva e che sia stato aggiunto il componente di indicizzazione che rappresenta la nuova replica di indice. Al prompt dei comandi di Microsoft PowerShell digitare i comandi seguenti:

    Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
    
  9. Monitorare la distribuzione dell'indice esistente nella nuova replica. Lo stato della replica di indice aggiunta sarà Degraded fino al termine della distribuzione. Al prompt dei comandi di Microsoft PowerShell digitare i comandi seguenti:

    Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text
    

    Ripetere questo comando finché tutti i componenti di ricerca, incluso il nuovo componente di indicizzazione, non avranno restituito come stato Active. Per un indice di ricerca esteso, questa operazione può richiedere diverse ore.

Aggiungere una nuova partizione di indice

Quando si aggiunge una nuova partizione di indice, è necessario ripartizionare l'indice di ricerca. A seconda delle dimensioni dell'indice di ricerca, il ripartizionamento può richiedere diverse ore.

Per aggiungere una partizione di indice e ripartizionare l'indice di ricerca, è necessario aggiungere un nuovo componente di indicizzazione alla topologia di ricerca e associarlo al numero della nuova partizione di indice. L'aggiunta di una partizione di indice e il ripartizionamento dell'indice di ricerca devono essere avviati come processi separati e non devono essere eseguiti mentre si apportano altre modifiche alla topologia di ricerca.

È necessario aggiungere alla nuova partizione di indice lo stesso numero di repliche di indice delle partizioni esistenti.

Prima di aggiungere una nuova partizione di indice alla topologia di ricerca e avviare il ripartizionamento dell'indice di ricerca:

  • Eseguire il backup dell'applicazione del servizio di ricerca e dell'indice di ricerca esistente. Vedere Eseguire il backup delle applicazioni del servizio di ricerca in SharePoint Server.

  • Verificare che la topologia attiva corrente sia integra. Visualizzare lo stato della topologia di ricerca nella pagina Amministrazione ricerca in Amministrazione centrale oppure eseguire il cmdlet Get-SPEnterpriseSearchStatus di Microsoft PowerShell.

  • Verificare che sia disponibile sufficiente spazio su disco nel server in cui verrà aggiunta la partizione di indice.

Avviso

L'applicazione del servizio di ricerca viene sospesa durante il ripartizionamento dell'indice e non può eseguire ricerche per indicizzazione né indicizzare il contenuto. Gli utenti inoltre non potranno eseguire query.

Per aggiungere una partizione di indice

  1. Verificare che l'account utente che sta eseguendo la procedura sia membro del gruppo Amministratori farm.

  2. Avviare SharePoint Management Shell in uno dei server della farm.

  3. Avviare un'istanza del servizio di ricerca in tutti i server in cui si desidera aggiungere una replica di indice per la nuova partizione di indice. Creare un riferimento dell'oggetto PowerShell all'istanza del servizio di ricerca utilizzata più avanti nella procedura. Per ogni server, al prompt dei comandi di Microsoft PowerShell eseguire i comandi seguenti:

    $<host n> = Get-SPEnterpriseSearchServiceInstance -Identity "<Server name>"
    Start-SPEnterpriseSearchServiceInstance -Identity $<host n>
    

    Dove:

    • <host n> specifica il riferimento dell'oggetto PowerShell per l'istanza del servizio di ricerca.

    • <Server name> specifica il server in cui si desidera aggiungere un componente di indicizzazione. L'input deve essere un GUID valido nel formato 12345678-90ab-cdef-1234-567890bcdefgh, un nome valido di un server, ad esempio myserver1, oppure un'istanza di un oggetto SearchServiceInstance valido.

    Ad esempio:

    $hostC = Get-SPEnterpriseSearchServiceInstance -Identity "myserver3"
    Start-SPEnterpriseSearchServiceInstance -Identity $hostC
    $hostD = Get-SPEnterpriseSearchServiceInstance -Identity "myserver4"
    Start-SPEnterpriseSearchServiceInstance -Identity $hostD
    
  4. Attendere che siano in esecuzione le istanze del servizio di ricerca. Per ogni server, al prompt dei comandi di Microsoft PowerShell digitare il comando seguente e attendere che venga restituito lo stato Online:

    Get-SPEnterpriseSearchServiceInstance -Identity $<host n>
    
  5. Clonare la topologia di ricerca attiva. Al prompt dei comandi di Microsoft PowerShell digitare i comandi seguenti:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
    $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
    

    Il comando crea una topologia di ricerca clone a cui è possibile fare riferimento con $clone e restituisce informazioni sulla topologia clone. Prendere nota dell'ID della topologia clonata, nell'eventualità in cui sia necessario annullare il processo di ripartizionamento.

  6. Aggiungere una nuova partizione di indice aggiungendo uno o più componenti di indicizzazione e associarli alla nuova partizione di indice. È consigliabile creare per la nuova partizione di indice lo stesso numero di repliche di indice delle partizioni esistenti. Per ogni nuovo componente di indicizzazione, al prompt dei comandi di Windows PowerShell digitare i comandi seguenti:

    New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance <host n> -IndexPartition <Index partition number>
    

    Dove:

    • $clone è la topologia clonata che si desidera modificare.

    • <host n> specifica il riferimento dell'oggetto PowerShell per l'istanza del servizio di ricerca.

    • <Index partition number> è il numero della partizione di indice che si sta creando. Per impostazione predefinita è presente una singola partizione di indice, denominata partizione di indice 0. Se si desidera creare una nuova partizione di indice, immettere il valore 1 per il parametro IndexPartition, seguito da 2, 3 e così via.

    Se ad esempio si dispone di una partizione di indice esistente 0 con repliche di indice nell'host A e nell'host B e si desidera aggiungere una nuova partizione di indice con repliche di indice nell'host C e nell'host D:

    New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostC -IndexPartition 1
    New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostD -IndexPartition 1
    
  7. Verificare che l'applicazione del servizio di ricerca sia in esecuzione. Al prompt dei comandi di Microsoft PowerShell digitare i comandi seguenti:

    $ssa.IsPaused() -ne 0
    
    • Se questo comando restituisce False, l'applicazione del servizio di ricerca è in esecuzione. Continuare con il passaggio 9.

    • Se invece questo comando restituisce True, l'applicazione del servizio di ricerca è in pausa. Continuare con il passaggio 8.

  8. Se l'applicazione del servizio di ricerca è in pausa, individuarne la causa e se è necessario attendere il completamento di un'operazione prima di procedere con il passaggio 9. Per altre informazioni, vedere Gestire un'applicazione del servizio di ricerca sospesa in SharePoint Server.

  9. Avviare l'attivazione della topologia clone. In questo modo verrà avviata l'attivazione della topologia che include le nuove repliche di indice associate alla nuova partizione di indice. Verrà avviato inoltre il processo di ripartizionamento.

    Importante

    L'applicazione del servizio di ricerca viene sospesa durante il ripartizionamento dell'indice e non può eseguire ricerche per indicizzazione né indicizzare il contenuto. Gli utenti inoltre non potranno eseguire query e non sarà possibile accedere alla console di Windows PowerShell in cui viene eseguito il comando di attivazione.

    Nota

    Nella pagina Amministrazione ricerca in Amministrazione centrale non viene indicato che l'applicazione del servizio di ricerca è stata sospesa per il ripartizionamento dell'indice. Poiché tuttavia vengono sospesi tutti i componenti di elaborazione delle query quando si sospende l'applicazione del servizio di ricerca per il ripartizionamento, durante questo processo nella pagina Amministrazione ricerca verranno visualizzati errori per i componenti di elaborazione delle query.

    Al prompt dei comandi di Windows PowerShell digitare i comandi seguenti:

    $ssa.PauseForIndexRepartitioning()
    Set-SPEnterpriseSearchTopology -Identity $clone
    
  10. Monitorare lo stato del processo di ripartizionamento dell'indice. È possibile monitorare lo stato del processo di ripartizionamento solo nei componenti di indicizzazione primari della topologia esistente. Nei passaggi riportati di seguito viene illustrato come individuare i componenti di indicizzazione primari.

    Nota

    Non sarà possibile eseguire alcun comando nella sessione di SharePoint Management Shell esistente finché non sarà stata completata l'attivazione della topologia, incluso il processo di ripartizionamento dell'indice. Eseguire i comandi riportati di seguito in una seconda sessione di SharePoint Management Shell.

    • Avviare una seconda sessione di SharePoint Management Shell.

    • Individuare la replica di indice primario per ognuna delle partizioni di indice esistenti. Al prompt dei comandi della seconda sessione di SharePoint Management Shell digitare i comandi seguenti:

      $ssa = Get-SPEnterpriseSearchServiceApplication
      Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text
      

      Il comando restituisce un elenco dei componenti di indicizzazione con le relative proprietà. Prendere nota dei nomi dei componenti di indicizzazione primari. Si tratta dei componenti di indicizzazione con proprietà Primary: True.

      Ad esempio, l'output può essere simile al seguente. In questo esempio IndexComponent2 è il componente di indicizzazione primario:

      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
      
  11. Per ogni componente di indicizzazione primario, monitorare lo stato del ripartizionamento dell'indice. Al prompt dei comandi della seconda sessione di SharePoint Management Shell digitare i comandi seguenti:

    Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Healthreport -Component <Index component name> | ? { ($_.name -match "repart") -or ( $_.name -match "splitting") } | ft -AutoSize Name, Message
    

    Dove:

    • <Index component name> è il nome del componente di indicizzazione primario di cui si desidera monitorare lo stato, ad esempio IndexComponent2.

    Monitorare l'output del comando per ogni componente di indicizzazione primario. L'output del comando include informazioni sullo stato del ripartizionamento dell'indice.

    Durante la fase iniziale del processo di ripartizionamento dell'indice, l'output sarà simile al seguente:

    Name                                              Message
    ----                                              -------
    repartition_component_state[SP...]                Pending
    

    Le partizioni di indice vengono divise durante la fase principale del processo di ripartizionamento dell'indice. Durante questa fase, l'output sarà simile al seguente:

    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
    

    Il valore percentuale nell'output indica lo stato approssimativo del processo di ripartizionamento.

    Ripetere questo comando per tutti i componenti di indicizzazione primari finché l'output del comando non restituisce più alcun valore. Questo significa che il processo di ripartizionamento dell'indice è stato completato e che l'indice ripartizionato verrà ora replicato e distribuito nei server. Questa operazione può richiedere diverse ore.

  12. Monitorare lo stato della distribuzione dell'indice nelle nuove repliche di indice. A tale scopo, verificare che la nuova topologia sia attiva e che tutti i componenti di ricerca siano integri. Al prompt dei comandi della seconda sessione di SharePoint Management Shell digitare i comandi seguenti:

    Get-SPEnterpriseSearchStatus -SearchApplication $ssa | ft -AutoSize Name, State, Details
    

    Durante la distribuzione dell'indice nelle nuove repliche di indice, le repliche di indice aggiunte restituiranno lo stato Degraded. La distribuzione è completa quando tutti i componenti di indicizzazione restituiscono lo stato Active nell'output. Questa operazione può richiedere diverse ore.

    Nota

    I componenti di elaborazione delle query sono sospesi perché è stata sospesa l'applicazione del servizio di ricerca per il ripartizionamento dell'indice. Nell'output i componenti di elaborazione delle query verranno elencati con stato Unknown.

  13. Nella sessione di SharePoint Management Shell utilizzata per avviare il processo di attivazione della topologia verificare che sia stato completato il comando di attivazione della topologia di ricerca.

  14. (Facoltativo) Riavviare il servizio Controller host della ricerca di SharePoint in tutti i server che ospitavano componenti di indicizzazione (che rappresentavano una replica di indice primario o un'altra replica di indice) prima del ripartizionamento.

    Eseguire questa operazione per ottenere un numero di documenti corretto e liberare memoria dopo il ripartizionamento dell'indice d ricerca. Se si decide di non effettuare questa operazione, saranno necessari alcuni giorni e alcune iterazioni di indicizzazione per ridurre gradualmente l'utilizzo della memoria e ottenere un numero di documenti corretto (secondo quanto restituito dai cmdlet di PowerShell e nella pagina Amministrazione ricerca in Amministrazione centrale).

    Nota

    Per evitare interruzioni delle query, verificare che almeno un componente di indicizzazione restituisca lo stato Running per ogni partizione di indice prima di riavviare il servizio Controller host della ricerca di SharePoint.

    Importante

    Non utilizzare la pagina Servizi nel server nel sito Web Amministrazione centrale SharePoint Server per riavviare il servizio.

    • Per riavviare il servizio Controller host della ricerca di SharePoint, aprire una finestra del prompt dei comandi in ognuno dei server che ospitano i componenti di indicizzazione per partizioni di indice esistenti.

      • Per arrestare il servizio Controller host della ricerca di SharePoint, digitare il comando seguente: net stop spsearchhostcontroller

      • Per riavviare il servizio Controller host della ricerca di SharePoint, digitare il comando seguente: net start spsearchhostcontroller

  15. Riprendere l'esecuzione dell'applicazione del servizio di ricerca. Al prompt dei comandi di Windows PowerShell digitare i comandi seguenti:

    $ssa.ResumeAfterIndexRepartitioning()
    

Annullare il processo di ripartizionamento

Se per qualsiasi motivo è necessario annullare un processo di ripartizionamento in corso, eseguire la procedura seguente.

Per annullare il processo di ripartizionamento

  1. Avviare una nuova sessione di SharePoint Management Shell nel server in cui è stato eseguito il comando di attivazione della topologia.

  2. Recuperare l'ID della topologia che si sta attivando. Al prompt dei comandi di Windows PowerShell digitare i comandi seguenti:

    $activating = Get-SPEnterpriseSearchTopology -Identity <Id of the activating topology> -SearchApplication $ssa
    

    Dove:

    • <Id of the activating topology> è l'identità (GUID) della topologia clone annotato quando è stata clonata la topologia di ricerca.
  3. Annullare l'attivazione della topologia. Al prompt dei comandi di Windows PowerShell digitare i comandi seguenti:

    $activating.CancelTopologyActivation()
    

Rimuovere un componente di indicizzazione

Se si dispone di più repliche di indice attive per una partizione di indice, è possibile rimuoverne una eseguendo la procedura Rimuovere un componente di ricerca nell'articolo Gestire i componenti di ricerca in SharePoint Server.

Non è possibile rimuovere l'ultima replica di indice di una partizione di indice utilizzando questa procedura. Se è necessario rimuovere tutte le repliche di indice dalla topologia di ricerca, rimuovere e ricreare l'applicazione del servizio di ricerca e creare una topologia di ricerca completamente nuova con un numero di partizioni di indice ridotto.

Spostare un componente di indicizzazione

Se si desidera spostare una replica di indice da un server a un altro, è consigliabile aggiungere un nuovo componente di indicizzazione alla topologia di ricerca prima di rimuovere il componente di indicizzazione precedente.

Per spostare un componente di indicizzazione

  1. Aggiungere un nuovo componente di indicizzazione al server in cui si desidera spostare la replica di indice. Clonare la topologia di ricerca, aggiungere una nuova replica di indice, attendere che l'indice venga replicato nella nuova replica di indice e attivare la topologia di ricerca. Vedere Aggiungere una replica di indice a una partizione di indice esistente.

  2. Attendere che la nuova replica di indice sia pronta per gestire le query. Visualizzare lo stato della topologia di ricerca nella pagina Amministrazione ricerca in Amministrazione centrale oppure eseguire il cmdlet Get-SPEnterpriseSearchStatus di Windows PowerShell. Prima di continuare, è necessario che lo stato della replica di indice che è stata aggiunta sia Active.

  3. Clonare di nuovo la topologia di ricerca.

  4. Rimuovere la replica di indice superflua rimuovendo il componente di indicizzazione. Vedere la procedura Rimuovere un componente di ricerca nell'articolo Gestire i componenti di ricerca in SharePoint Server.

  5. Attivare di nuovo la topologia di ricerca.

In questo modo verrà garantita la tolleranza di errore dell'indice di ricerca mentre si sposta la replica di indice.