El servicio de búsqueda es una de las características más importantes y más utilizadas que tiene SharePoint. En toda gestión documental que se precie, obtener la información que se está buscando es algo imprescindible. Una opinión bastante generalizada es que el servicio de búsqueda (antiguo FAST) que trae nuestro servidor favorito es el mejor buscador empresarial y… ¡con bastante diferencia! En este artículo vamos a ver como podemos indexarle property bags y, de esta forma, simplificar mucho algunos procesos de negocio.
Funcionalidad Requerida
Hay que implementar un sitio en el que determinados usuarios puedan crear subsitios. Estos subsitios pueden ser de diversos tipos: Desarrolladores, Diseñadores, Arquitectos… Técnicamente cada subsitio es una plantilla de sitio diferente. Pueden ser un Team Site, un sitio de Comunidad o bien un sitio customizado. Cuando se crea cada subsitio, en el mismo se graba una Property Bag indicando el tipo del mismo. Ahora bien necesitamos tener una página en la que el usuario pueda saber los subsitios de tipo Desarrollador, subsitios de Diseñadores y diseños de Arquitectos a los que tiene acceso.
Opciones posibles
- Realizar un desarrollo personalizado. Se tendría que implementar un WebPart en la que se consulte los subsitios a los que el usuario tiene permisos, consultar la property bag y en base a esta agruparlo.
- Utilizar el servicio de búsqueda. Indexamos las property bags en el buscador y utilizar un Content Search agrupando por esta propiedad.
Pros y Contras de cada opción
La opción 1, su principal beneficio es que podemos personalizarlo mayor, pero como principal tiene que si hay muchos subsitios es posible que tengamos un problema de rendimiento y de escalabilidad. Además, tenemos que sumar que hay realizar la implementación.
La opción 2, no se tiene que utilizar ninguna línea de código y se utilizan componentes Out of the Box que vienen en nuestro servidor favorito. Como único argumento en contra sería la adaptación a la nueva funcionalidad y nuevos requisitos.
Indexando las property bags en nuestro servicio de búsqueda
- Cuando creamos la Property Bag tenemos que indicar que esta propiedad sea indexable por el buscador. Si lo hacemos mediante PowerShell podemos utilizar el siguiente código:
$web = Get-SPWeb http://mysharepoint $web.AllProperties[“Tipo″] = “Comunidad″ $web.IndexedPropertyKeys.Add(“Tipo″) $web.Update()
- Realizar un rastreo completo (Ir al servicio de búsqueda->Crawling->Content Source).
- Agregar una nueva propiedad administrada al buscador (Managed Property) e indicarle que esté mapeada sobre nuestra Property Bag. Para ello, vamos a Queries and Result-> Search Schema-> New Managed Property. Pulsamos sobre Add Mapping (tal y como se muestra la siguiente imagen)Al pulsar en Add Maping buscamos nuestra Property Bag
- Lista para su uso 🙂
Resumen
SharePoint tiene muchas herramientas de Out of the Box para poder hacer desarrollos que cumplan con muchos de los requisitos. El buscador es una de estas herramientas en las que además disponemos de diversos WebParts en los que podemos añadir la interfaz requerida por los usuarios. El buscador es una de los puntos fuertes de SharePoint, por lo tanto en muchos de nuestros desarrollos lo debemos de utilizar. El caso que hemos visto es un ejemplo claro pero tiene multitud de ejemplos y utilidades.