Cómo configurar Servicio de Búsqueda en SharePoint 2013 con PowerShell en tres pasos :)

Para crear la aplicación de servicio de búsqueda usando powerShell, debemos ejecutar las siguientes líneas de comandos, les recomiendo que lo copien en un bloc de notas y lo guardes con extensión ".ps1", para que sea fácil de ejecutarlo.

Paso 1 . Abrir la consola de PowerShell como administrador y ejecutar el archivo .ps1 con las líneas descritas a continuación, como se muestra a continuación.


# Crear nueva aplicación de servicio de Búsqueda en  SharePoint 2013 
 
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 
 
# Configuración de Parametros  
$IndexLocation = "D:\Data\Search15Index" #Como buena práctica esta ubicación de archivos index debería estar en otro unidad.  
$SearchAppPoolName = "Search App Pool" 
#Aplicación Pool del sercicio de búsqueda  
$SearchAppPoolAccountName = "dominio\CuentadeServicio"  
#Cuenta de servicio que iniciara los servicios de búsqueda 
$SearchServerName = (Get-ChildItem env:computername).value  
#Servidor de base de datos con esta linea de comando busca el servidor donde se encuentra configurada la granja 
$SearchServiceName = "Search15"  
#Nombre del Servicio de búsqueda 
$SearchServiceProxyName = "Search15 Proxy"  
#Nombre del  proxy del servicio de búsqueda 
$DatabaseName = "Search15_ADminDB"  
#Nombre la base de datos de administración del servicio de búsqueda  
Write-Host -ForegroundColor Yellow "Validando si  Application Pool existe"  
$SPAppPool = Get-SPServiceApplicationPool -Identity $SearchAppPoolName -ErrorAction SilentlyContinue 
 
if (!$SPAppPool)  
{  
    Write-Host -ForegroundColor Green "Creando Search Application Pool"  
    $spAppPool = New-SPServiceApplicationPool -Name $SearchAppPoolName -Account $SearchAppPoolAccountName -Verbose  
} 
 
# Iniciando instancia de servicio de búsqueda 
Write-host "Iniciando instancia de servicio de búsqueda...."  
Start-SPEnterpriseSearchServiceInstance $SearchServerName -ErrorAction SilentlyContinue  
Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $SearchServerName -ErrorAction SilentlyContinue 
 
Write-Host -ForegroundColor Yellow "Validando si  Servicio de Búsqueda  existe"  
$ServiceApplication = Get-SPEnterpriseSearchServiceApplication -Identity $SearchServiceName -ErrorAction SilentlyContinue 
 
if (!$ServiceApplication)  
{  
    Write-Host -ForegroundColor Green "Creando Aplicación de Servicios de Búsqueda"  
    $ServiceApplication = New-SPEnterpriseSearchServiceApplication -Partitioned -Name $SearchServiceName -ApplicationPool $spAppPool.Name  -DatabaseName $DatabaseName  
} 
 
Write-Host -ForegroundColor Yellow "Validando si  el proxy de la aplicación de servicio de búsqueda existe"  
$Proxy = Get-SPEnterpriseSearchServiceApplicationProxy -Identity $SearchServiceProxyName -ErrorAction SilentlyContinue 
 
if (!$Proxy)  
{  
    Write-Host -ForegroundColor Green "Creando el proxy de la aplicación de servicio de búsqueda"  
    New-SPEnterpriseSearchServiceApplicationProxy -Partitioned -Name $SearchServiceProxyName -SearchApplication $ServiceApplication  
} 
 
 
$ServiceApplication.ActiveTopology  
Write-Host $ServiceApplication.ActiveTopology 
 
# En esta líneas clona la topología por defecto y crea una nueva y la activa  
Write-Host "Configurando el componente de búsqueda...."  
$clone = $ServiceApplication.ActiveTopology.Clone()  
$SSI = Get-SPEnterpriseSearchServiceInstance -local  
New-SPEnterpriseSearchAdminComponent –SearchTopology $clone -SearchServiceInstance $SSI  
New-SPEnterpriseSearchContentProcessingComponent –SearchTopology $clone -SearchServiceInstance $SSI  
New-SPEnterpriseSearchAnalyticsProcessingComponent –SearchTopology $clone -SearchServiceInstance $SSI  
New-SPEnterpriseSearchCrawlComponent –SearchTopology $clone -SearchServiceInstance $SSI 
 
Remove-Item -Recurse -Force -LiteralPath $IndexLocation -ErrorAction SilentlyContinue  
mkdir -Path $IndexLocation -Force 
 
New-SPEnterpriseSearchIndexComponent –SearchTopology $clone -SearchServiceInstance $SSI -RootDirectory $IndexLocation  
New-SPEnterpriseSearchQueryProcessingComponent –SearchTopology $clone -SearchServiceInstance $SSI  
$clone.Activate() 
 
Write-host "La aplicación de servicios de búsqueda   $SearchServiceName ha sido creada"

Paso 2 . Ahora se debe crear la topología de alta disponibilidad del servicio de  búsqueda para esto se van agregar los diferentes componentes del servicio  en los servidores de Aplicaciön de la granja.
  1. #Coloque los nombres de los servidores de aplicación de la granja en los cuales va a instalar el servicio 
     
    $hostA = Get-SPEnterpriseSearchServiceInstance -Identity "Coloque nombre del servidor de aplicación 1" 
    $hostB = Get-SPEnterpriseSearchServiceInstance -Identity "Coloque nombre del servidor de aplicación 2" 
     
    #Iniciamos la instancia del servicio de búsqueda en los diferentes servidores de aplicaciones que deseamos crear la topología con los siguientes comandos  
     
    Start-SPEnterpriseSearchServiceInstance -Identity $hostA 
    Start-SPEnterpriseSearchServiceInstance -Identity $hostB 
     
    #Validamos que el servicio inicio correctamente la debe salir online como se evidencia en la siguiente imagen 
      
    Get-SPEnterpriseSearchServiceInstance -Identity $hostA 
    Get-SPEnterpriseSearchServiceInstance -Identity $hostB
  2. Debe aparecer Online como muestra la figura, se demora unos minutos.
  3. #Almacenamos en la variable el servicio de búsqueda que acabamos de crear 
    $ssa = Get-SPEnterpriseSearchServiceApplication 
    #Cramos la nueva topología  
    $newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa 
    #Iniciamos la creación de los componentes en los servidores de aplicaciones que deseamos dejar la topología este procedimiento se realiza para cada servidor de aplicación. 
    New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $hostA 
    New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostA -IndexPartition 0 
    New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $hostA 
    New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA 
    New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA 
    New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA 
    #En nuestro caso tenemos dos servidores de aplicación donde dejaremos configurado el servicio 
      
    New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $hostB 
    New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostB -IndexPartition 0 
    New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $hostB 
    New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostB 
    New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostB 
    New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostB 
    #Finalamente realizamos el Set de los descrito anteriormente esto se puede demorar unos minutos. 
    Set-SPEnterpriseSearchTopology -identity $newTopology 
Paso 3 . Finalmente  solo nos queda validar la creación de la topología del servicio de búsqueda e iniciar el rastreo de la documentación a buscar.

  1. Ingresar a Mange Services Application  
  2. Seleccionamos el servicio de búsqueda creado
  3. Validamos que los componentes estén creados en los servidores que hemos seleccionado
  4. Luego seleccionamos content Sources para validar los sitios que se van a indexar
  5. Editamos el contenido de origen por defecto para adicionar los sitios a indexar o creamos uno nuevo
  6. Luego de agregar los sitios a indexar, finalmente iniciamos la indexación en "Start All Crawls", podemos configurar de varias maneras.
Esto se demorara unos minutos y finalmente tendremos el servicio de búsqueda creado y listo para usar en nuestros sitios.
Espero les ayude con su implementación.
Atte.
Ademir

Comentarios

Entradas más populares de este blog

Que es un Webpart o Elemento Web en SharePoint?

The type or namespace name ‘SharePoint’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?) – SharePoint 2013 Client Object Model dlls

Extender el periodo de Evalución hasta 240 días en SQL Server y SharePoint Server