Cómo configurar Servicio de Búsqueda en SharePoint 2013 con PowerShell en tres pasos :) (Es-es)
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.
https://3.bp.blogspot.com/-YuBN4nijkwo/V00WFsg2X3I/AAAAAAAAI2M/sV_3SArwosch9bbycmruejjSQr3T9FGjgCLcB/s1600/ps1.png
# 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.
#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
Debe aparecer Online como muestra la figura, se demora unos minutos.
#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.
Ingresar a Mange Services Application
Seleccionamos el servicio de búsqueda creado
Validamos que los componentes estén creados en los servidores que hemos seleccionado
Luego seleccionamos content Sources para validar los sitios que se van a indexar
Editamos el contenido de origen por defecto para adicionar los sitios a indexar o creamos uno nuevo
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