Search Driven Development (III): El WebPart de Refinamiento

Muy buenas a todos de nuevo,

Antes de nada, os deseo una Feliz Navidad a todos. Hoy quiero seguir profundizando un poco más en el concepto de Search Driven Development. Vamos a trabajar con el WebPart de refinamiento. Al igual que el Content Search WebPart, el de refinamiento es completamente configurable de una forma muy sencilla. Mucho más que lo era el WebPart de refinamiento en SharePoint 2010.

Además, y aunque no es objeto de este post, también se pueden crear plantillas para estos refinadores de búsqueda, tal y como hacíamos con los tipos de resultado.

Para explicar como trabajar con el WebPart de refinamiento he planteado un escenario en el que dispongo de un catálogo de formaciones y he creado al igual que hacía en los anteriores post, su respectiva página de catálogo y elementos de catálogo, configurando posteriormente el Content Search WebPart de cada uno.

Primeros Pasos con SharePoint OnLine: Search Driven Development

Search Driven Development en SharePoint (II): Catálogos y Elementos de Catálogo

El tipo de Contenido que he creado para el catálogo es el siguiente:

Captura de pantalla 2014-12-26 a las 2.24.48

Una vez creado el catálogo y su funcionalidad, añadimos a la página del catálogo el WebPart de refinamiento, dándonos un aspecto como el siguiente.

Captura de pantalla 2014-12-26 a las 2.20.45

El caso es que para nuestro catálogo, no es suficiente con los refinadores por defecto que nos carga el WebPart de refinamiento, queremos establecer nuestros propios refinadores, basados en el tipo de contenido que hemos definido. En nuestro caso queremos poder refinar nuestro catálogo por: Tipo de Formación, Autor, Temática y Valoración.

Definiendo las propiedades administradas para el refinamiento

Todas las opciones de refinamiento de nuestro WebPart se basan en propiedades administradas de nuestro esquema de búsqueda. Pero lo harán en unas propiedades especiales que en nuestro esquema aparecen con el nombre de: RefinableString, RefinableInt, RefinableDouble, RefinableDate, en función del tipo de dato que representa cada una, disponiendo de un número elevado de cada una de ellas para poder configurar correctamente nuestras propiedades administradas de refinamiento.

Lo que tendremos que hacer es, asociar las propiedades rastreadas que queramos usar en el refinamiento a las propiedades administradas correspondientes. Vamos a ver como hacer esto.

Para empezar vamos a Configuración del sitio->Esquema de Búsqueda de la administración de la colección de sitios (a nivel de sitio no tenemos permisos para hacerlo) y accederemos al esquema de búsqueda de la colección de sitios.

Captura de pantalla 2014-12-26 a las 2.40.16

Lo que haremos ahora, es ir a las distintas propiedades administradas para asociarlas adecuadamente. En mi ejemplo, quiero añadir cuatro refinadores, tres pueden ser mapeados como cadena y uno como número. Las propiedades administradas de refinamiento tienen números correlativos asignados (por ejemplo RefinableString00 a RefinableString99), así que seleccionamos la propiedad que queremos mapear y entramos a ella.

Captura de pantalla 2014-12-26 a las 2.46.12

Una vez dentro, tenemos que asignar las propiedades rastreadas. Para ello, hacemos click en asignar propiedades.

Captura de pantalla 2014-12-26 a las 2.46.24

Captura de pantalla 2014-12-26 a las 2.46.48

Buscamos la propiedad rastreada que queramos mapear, por defecto SharePoint, para cada columna que hayamos definido crea dos propiedades rastreadas, como las que vemos a continuación:

Captura de pantalla 2014-12-26 a las 2.48.36

Para el refinamiento, tenemos que seleccionar la propiedad que tiene la forma ows_<nombre de la propiedad>. Seleccionamos ésta y damos a aceptar, luego guardamos los cambios hechos en la propiedad administrada y, en nuestro caso, como queríamos crear cuatro refinadores personalizados, repetimos la tarea para el resto de refinadores.

Personalizando el WebPart de refinamiento

Una vez que ya hemos definido los refinadores personalizados que vamos a utilizar, podemos ir a la página del catálogo para configurar el WebPart de refinamiento. Para ello nos iremos a las propiedades de dicho WebPart y la opción de «Elegir refinadores».

Captura de pantalla 2014-12-26 a las 3.00.20

Captura de pantalla 2014-12-26 a las 3.00.38

Por defecto nos aparecen los refinadores que vemos en la imagen anterior. En nuestro caso, queremos cambiarlos por los que habíamos definido en el paso anterior. Por lo que cambiamos los refinadores por defecto por los siguientes: RefinableString01, RefinableString02, RefinableString03, RefinableInt01.

Captura de pantalla 2014-12-26 a las 3.03.36

Si hacemos click sobre cada uno de los refinadores podemos cambiar algunos aspectos de la visualización de los mismos. Entre otras cosas, nombre de ese refinador a  la hora de mostrarlo, tipo de plantilla (en función del tipo de refinador), y aspectos de configuración que varían en función del tipo de refinador que hayamos seleccionado.

Captura de pantalla 2014-12-26 a las 3.06.17

Captura de pantalla 2014-12-26 a las 3.06.35

Cuando hayamos configurado todos los refinadores, pulsamos aceptar y guardamos los cambios en el WebPart, con lo que ya tendremos nuestra página de Catálogo con unos refinadores personalizados y ajustados a nuestras necesidades. Es posible, que cuando se hayan definido los mismos, inicialmente, si no se ha realizado todavía una re-indexación de la lista posterior al mapeo adecuado de todas la propiedades administradas, no aparezca nada, esto se subsanará en cuestión de minutos, cuando la re-indexación se complete correctamente. Este es el aspecto que sin nada de diseño, nos queda del Content Search WebPart y el WebPart de refinamiento.

Captura de pantalla 2014-12-26 a las 3.11.27

Y nada más por hoy, espero que toda esta serie de artículos relacionados con el Search Driven Development, os estén siendo de utilidad. Os dejo algunos enlaces que me han servido a la hora de preparar el post.

http://blogs.technet.com/b/tothesharepoint/archive/2013/06/19/stage-14-configure-refiners-for-faceted-navigation.aspx

http://blogs.technet.com/b/tothesharepoint/archive/2013/11/11/how-to-add-refiners-to-your-search-results-page-for-sharepoint-2013.aspx

Un saludo.