Artículo original publicado el lunes 3 de diciembre de 2012

Probablemente a estas alturas ya haya recursos en alguna parte sobre este asunto, pero en su momento tuve bastantes dificultades para encontrarlos, así que he decidido publicar este artículo aquí. Por suerte, mi amigo Knut B. ha sido muy considerado al pasarme código de PowerShell con el que administrar las particiones de índice de forma más sencilla. En pocas palabras: lo que queremos hacer es obtener una referencia a la instancia del servicio de búsqueda en el host en el que vamos a crear una partición o una réplica de partición, después clonaremos la topología de búsqueda existente y le agregaremos la partición o la réplica. Una vez hecho todo esto, se puede especificar a SharePoint que empiece a usar el clon de la topología que hemos creado. Damos por hecho que comenzaremos con una granja de servidores creada con el asistente para granjas de servidores, de modo que habrá una partición de índice que no contiene réplicas. Veamos, pues, en primer lugar cómo agregar una partición de búsqueda nueva:

# Especifique el nuevo servidor que quiera agregar e inicie la instancia del servicio de búsqueda (SSI):
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nombreDelServidorEnQueSeCrearáLaPartición"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Espere a que SSI se ejecute. Ejecute el siguiente comando hasta que el estado de SSI sea “Online”:
Get-SPEnterpriseSearchServiceInstance -Identity $newssi

Ya tenemos seleccionado el servidor con el que vamos a trabajar y sabemos que en él se ejecuta la instancia del servidor de búsqueda, por lo que vamos a clonar la topología de búsqueda existente:

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

Ahora que ya tenemos el clon, podemos pasar a crear una partición. Las particiones se enumeran de 0 en adelante, por lo que, si damos por hecho que se ha usado el asistente y que solo existe una partición, esta tendrá el número 0. Para agregar una segunda partición a nuestra topología clonada, la llamaremos partición 1 y, después, definiremos nuestra topología clonada como la nueva topología de búsqueda.

# Agregue un nuevo componente de índice y especifique que este está asociado con la nueva partición de índice 1:
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Como se puede apreciar en la variable New-SPEnterpriseSearchIndexComponent, pasamos por la variable $newssi, que es donde asignamos el servidor en el que vamos a crear la partición. Una vez creada la partición, ejecutamos exactamente el mismo código de PowerShell para crear una réplica de esta en otro servidor. Dado que ya he explicado cómo hacerlo, pegaré directamente el código de PowerShell completo y lo comentaré:

# Especifique el nuevo servidor que quiera agregar e inicie la instancia del servicio de búsqueda:
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nombreDelServidorEnQueSeCrearáLaRéplica"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Espere a que SSI se ejecute. Ejecute el siguiente comando hasta que el estado de SSI sea “Online”:
Get-SPEnterpriseSearchServiceInstance -Identity $newssi
 
# Clone la topología existente:
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone
 
# Agregue un nuevo componente de índice y especifique que este está asociado con la nueva partición de índice 1:
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

Aquí son dos los aspectos que hay que tener en cuenta:

  1. En el cmdlet Get-SPEnterpriseSearchServiceInstance, indico el servidor en el que se va a hospedar la réplica de partición.
  2. En el cmdlet New-SPEnterpriseSearchIndexComponent, he definido la partición con la marca -IndexPartition. Como ya tengo una partición de índice 1, SharePoint creará una réplica de dicha partición de forma automática.

Y esto es todo. Espero haber sido de ayuda para empezar a administrar sus particiones de búsqueda en SharePoint 2013 y, de nuevo, gracias a Knut por compartir su código de PowerShell.

Esta entrada de blog es una traducción. Puede consultar el artículo original en Adding a New Search Partition and Replica in SharePoint 2013