SharePoint 2010: Personalización de los resultados de las búsquedas (I)!

Como sabéis, la plataforma SharePoint se caracteriza por su alto grado de personalización y por no ser una caja cerrada, lo que permite extenderla a todos los niveles. En lo que a las búsquedas se refiere, la idea es la misma ya que:

  • Podemos personalizar fácilmente las búsquedas de nuestros sitios de SharePoint aprovechando la flexibilidad de las WebParts de búsquedas.
  • Podemos construir nuestras propias soluciones de búsqueda aprovechando que el motor de búsqueda es programable vía API o vía Web Services.

La idea de este primer post es ver, siguiendo las indicaciones de este artículo, como por ejemplo podemos personalizar los resultados que se devuelven en una búsqueda que realicemos:

  • Lo primero que haremos es crear una página de búsquedas propia en la que mostrar los resultados en lugar de la página de aplicación OSSSearchResults.aspx que se utiliza por defecto.
  • Creamos una página de WebParts que resida en una de las bibliotecas de nuestro sitio.
  • Añadimos en la página de WebParts las siguientes WebParts de búsqueda: Cuadro de búsqueda, Resultados principales de la búsqueda y Paginación de la búsqueda. Colocamos estas WebParts de forma adecuada.
image image image
  • Lo siguiente que haremos es configurar las WebParts de forma adecuada para que el centro de búsqueda esté plenamente operativo. Empezamos con la de Cuadro de búsqueda ya que tenemos que asegurarnos que a la hora de devolver los resultados lo haga en la página que acabamos de crear y no en OSSSearchRersults.aspx. Para ello, editamos la configuración de la WebPart y en la sección Varios especificamos como dirección Url de la página de resultados la página actual.
  • Realizamos una búsqueda de prueba para comprobar que la configuración realizada es correcta.
  • Lo siguiente que haremos es configurar como los resultados son devueltos. Por ejemplo, un requerimiento que podemos tener es que el enlace al resultado sea siempre el nombre del documento si se trata de un documento y no el comportamiento por defecto en el que se muestra como enlace la primera palabra localizada en el documento que se corresponda con un título. Para ello, editamos las propiedades de la WebPart Resultados principales de la búsqueda. En esta ocasión, en la sección “Resultados principales” del panel de configuración localizamos la subsección “Mostrar propiedades” que nos permite configurar aspectos relativo a como se renderizan los resultados devueltos de la búsqueda. En particular, el cambio que queremos hacer implica madificar el XSL que da formato a estos resultados. Para poder modificarlo:
    • En "Propiedades recuperadas” añadimos si es necesario las nuevas columnas devueltas por el motor de búsqueda que queramos tener en cuenta a la hora de formatear el resultado de la búsqueda.
    • Desmarcamos el check “Usar la visualización de ubicación” y pulsamos “Editor XSL” para poder visualizar el XSL utilizado en la correspondiente ventana modal. Este XSL es el que modificaremos siguiendo las pautas del artículo de ejemplo comentado inicialmente.
image image image
  • Para facilitar el trabajo con el XSL, copiamos el contenido del editor y nos lo llevamos a Visual Studio 2010 por ejemplo.

image

  • Localizamos las secciones en las que tenemos que hacer cambios del XSL siguiendo las indicaciones de dicho artículo:
    • Localizamos el elemento <xsl:template match="Result"> y añadimos un par de variables que nos permitan controlar como se muestran los resultados devueltos por el motor de búsqueda.
    • Localizamos la sección en la que se indican las comprobaciones a realizar para que se muestre como enlace el primer texto de tipo título del documento. Lo identificaréis a partir del siguiente elemento: <xsl:when test="hithighlightedproperties/HHTitle[. != ”]"> y es esta sección la que tenemos que modificar con nuestra propia lógica para obtener el formateo deseado.
  • Copiamos el XSL modificado en el editor de XSL de la WebPart, aplicamos los cambios y comprobamos que los resultados se muestran de acuerdo al formato esperado.

image

Referencias: