Etiquetas

, ,


En esta ocasión vamos a ver como personalizar otra sección de gran importancia dentro de la página de búsquedas que es el panel de refinamiento. Para quienes no sepan que es el panel de refinamiento este es un elemento web que se puede insertar en las páginas de resultados de búsquedas y que en función de los metadatos de los resultados no permitirá filtrar los mismos. Por defecto el panel de refinamiento incluye un conjunto de filtros en función de las propiedades básicas que podemos conseguir en documentos como lo son el autor,  fecha de modificación, sitio web, etc.

El problema lo conseguirnos cuando queremos filtrar los resultados por propiedades que no vienen por defecto en nuestro panel de refinamiento, pero afortunadamente este se puede configurar para agregar nuevas propiedades, cada una de estas propiedades deben ser propiedades administradas y  las mismas las podemos crear en la aplicación del servicio de búsquedas y mapearlas contra cualquier propiedad de rastreo.

 

Para empezar una vez en la página de resultados que queremos modificar se debe ir a Acciones del sitio y seleccionar la opción Editar página.

Ahora debemos ubicar nuestro elemento web correspondiente al panel de refinamiento y en el menú del mismo hacer clic en editar elemento.

En el panel de propiedades debemos ampliar la sección “Refinamiento” y en la opción “Definición de categoría de filtro ” copiaremos el texto ubicado en el cuadro de texto y lo copiaremos en el visual studio o en cualquier otro editor xml para modificarlo con mayor comodidad.

Veremos algo parecido a esto:

<?xml version="1.0" encoding="utf-8"?>
<FilterCategories>
	
 <Category Title="Tipo de resultado" Description="La extensión de archivo del elemento" Type="Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator" MetadataThreshold="5" NumberOfFiltersToDisplay="4" MaxNumberOfFilters="0" SortBy="Frequency" SortDirection="Descending" SortByForMoreFilters="Name" SortDirectionForMoreFilters="Ascending" ShowMoreLink="True" MappedProperty="FileExtension" MoreLinkText="mostrar más" LessLinkText="mostrar menos">
 <CustomFilters MappingType="ValueMapping" DataType="String" ValueReference="Absolute" ShowAllInMore="False">
 <CustomFilter CustomValue="PDF de Adobe">
 <OriginalValue>pdf</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Correo electrónico">
 <OriginalValue>eml</OriginalValue>
 <OriginalValue>msg</OriginalValue>
 <OriginalValue>exch</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Excel">
 <OriginalValue>odc</OriginalValue>
 <OriginalValue>ods</OriginalValue>
 <OriginalValue>xls</OriginalValue>
 <OriginalValue>xlsb</OriginalValue>
 <OriginalValue>xlsm</OriginalValue>
 <OriginalValue>xlsx</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Imagen">
 <OriginalValue>tif</OriginalValue>
 <OriginalValue>tiff</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Lotus Notes">
 <OriginalValue>nsf</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="OneNote">
 <OriginalValue>one</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="PowerPoint">
 <OriginalValue>odp</OriginalValue>
 <OriginalValue>ppt</OriginalValue>
 <OriginalValue>pptm</OriginalValue>
 <OriginalValue>pptx</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Publisher">
 <OriginalValue>pub</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Texto">
 <OriginalValue>odt</OriginalValue>
 <OriginalValue>txt</OriginalValue>
 <OriginalValue>url</OriginalValue>
 <OriginalValue>csv</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Visio">
 <OriginalValue>vdw</OriginalValue>
 <OriginalValue>vdx</OriginalValue>
 <OriginalValue>vsd</OriginalValue>
 <OriginalValue>vss</OriginalValue>
 <OriginalValue>vst</OriginalValue>
 <OriginalValue>vsx</OriginalValue>
 <OriginalValue>vtx</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Página web">
 <OriginalValue>ascx</OriginalValue>
 <OriginalValue>asp</OriginalValue>
 <OriginalValue>aspx</OriginalValue>
 <OriginalValue>htm</OriginalValue>
 <OriginalValue>html</OriginalValue>
 <OriginalValue>jhtml</OriginalValue>
 <OriginalValue>js</OriginalValue>
 <OriginalValue>mht</OriginalValue>
 <OriginalValue>mhtml</OriginalValue>
 <OriginalValue>mspx</OriginalValue>
 <OriginalValue>php</OriginalValue>
 <OriginalValue></OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="XML">
 <OriginalValue>xml</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Word">
 <OriginalValue>doc</OriginalValue>
 <OriginalValue>docm</OriginalValue>
 <OriginalValue>docx</OriginalValue>
 <OriginalValue>dot</OriginalValue>
 <OriginalValue>nws</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Código postal">
 <OriginalValue>zip</OriginalValue>
 </CustomFilter>
 </CustomFilters>
 </Category>
 <Category Title="Sitio" Description="Sitio del que proviene este documento" Type="Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator" MetadataThreshold="5" NumberOfFiltersToDisplay="4" MaxNumberOfFilters="20" SortBy="Frequency" SortByForMoreFilters="Name" SortDirection="Descending" SortDirectionForMoreFilters="Ascending" ShowMoreLink="True" MappedProperty="SiteName" MoreLinkText="mostrar más" LessLinkText="mostrar menos" />
 <Category Title="Autor" Description="Use este filtro para restringir los resultados creados por un autor específico" Type="Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator" MetadataThreshold="5" NumberOfFiltersToDisplay="4" MaxNumberOfFilters="20" SortBy="Frequency" SortByForMoreFilters="Name" SortDirection="Descending" SortDirectionForMoreFilters="Ascending" ShowMoreLink="True" MappedProperty="Author" MoreLinkText="mostrar más" LessLinkText="mostrar menos" />
 <Category Title="Fecha de modificación" Description="Cuando se actualizó el elemento por última vez" Type="Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator" MetadataThreshold="5" NumberOfFiltersToDisplay="6" MaxNumberOfFilters="0" SortBy="Custom" ShowMoreLink="True" MappedProperty="Write" MoreLinkText="mostrar más" LessLinkText="mostrar menos" >
 <CustomFilters MappingType="RangeMapping" DataType="Date" ValueReference="Relative" ShowAllInMore="False">
 <CustomFilter CustomValue="Últimas 24 horas">
 <OriginalValue>-1..</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="La semana pasada">
 <OriginalValue>-7..</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="El mes pasado">
 <OriginalValue>-30..</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Últimos seis meses">
 <OriginalValue>-183..</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="El año pasado">
 <OriginalValue>-365..</OriginalValue>
 </CustomFilter>
 <CustomFilter CustomValue="Anterior">
 <OriginalValue>..-365</OriginalValue>
 </CustomFilter>
 </CustomFilters>
 </Category>
 <Category Title="Managed Metadata Columns" Description="Metadatos administrados de los documentos" Type="Microsoft.Office.Server.Search.WebControls.TaxonomyFilterGenerator" MetadataThreshold="3" NumberOfFiltersToDisplay="3" MaxNumberOfFilters="20" ShowMoreLink="True" MappedProperty="ows_MetadataFacetInfo" MoreLinkText="mostrar más" LessLinkText="mostrar menos" />
 <Category Title="Etiquetas" Description="Todos los metadatos administrados de los documentos y las etiquetas temáticas" Type="Microsoft.Office.Server.Search.WebControls.TaxonomyFilterGenerator" MetadataThreshold="3" NumberOfFiltersToDisplay="3" MaxNumberOfFilters="20" ShowMoreLink="True" MappedProperty="ows_MetadataFacetInfo,popularsocialtags" MoreLinkText="mostrar más" LessLinkText="mostrar menos" />
	
</FilterCategories>

Como podemos observar a través de la etiqueta Category podemos agregar nuevas categorías de refinamiento a nuestro panel.

Las propiedades de la etiqueta Category que obligatoriamente deberemos indicar serán “Title” (Titulo de la categoria) y “MappedProperty” (Nombre de la propiedad administrada).

 Por lo que una nueva categoría quedaría así:

 <Category Title=”Nueva Categoria” Description=”The content type of the item” Type=”Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator” MetadataThreshold=”1″ NumberOfFiltersToDisplay=”10″ MaxNumberOfFilters=”0″ SortBy=”Frequency” SortDirection=”Descending” SortByForMoreFilters=”Name” SortDirectionForMoreFilters=”Ascending” ShowMoreLink=”True” MappedProperty=”MiPropieadadAdministrada” MoreLinkText=”show more” LessLinkText=”show fewer”/>

Aquí la explicación de cada uno de los atributos (sacado de la msdn)

Atributo Descripción
Título Una cadena que especifica el título de la categoría de filtro, que se muestra en el elemento web de panel de refinamiento.

Para categorías de filtro de taxonomía, use los siguientes títulos:

  • El nombre de columna para categorías de filtro de taxonomía basadas en columnas.
  • Columnas de metadatos administrados para categorías de filtro de columna de taxonomía que usan owsmetadatafacetinfo para mostrar las columnas más adecuadas.
  • Etiquetas para categorías de filtro de etiquetas de taxonomía mediante owsmetadatafacetinfo para mostrar la categoría generada.
Descripción Una cadena que especifica la descripción de la categoría de filtro, que se muestra como información sobre herramientas en el elemento web de panel de refinamiento.
Tipo El tipo de datos en que se basa el refinamiento.

Los valores válidos son:

  • Microsoft.Office.Server.Search.WebControls.TaxonomyFilterGenerator  El refinamiento se basa en datos de taxonomía.
  • Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator  El refinamiento se basa en una propiedad administrada.
  • Microsoft.Office.Server.Search.WebControls.RankingModelFilterGenerator  El refinamiento se basa en un modelo de clasificación.
  • CustomFilterGenerator  El refinamiento se basa en un generador de filtros personalizados.
MappedProperty Una cadena que especifica el nombre de la propiedad administrada para el refinamiento. Para columnas o etiquetas de taxonomía, especifique ows_MetadataFacetInfo. Para etiquetas temáticas populares, use ows_MetadataFacetInfo,popularsocialtags.
MetadataThreshhold Un entero mayor o igual que 1, que especifica el número de resultados que deben contener un valor para mostrar el generador de filtros bajo la categoría de filtro.
NumberOfFiltersToDisplay Un entero entre 1 y 50, que especifica el número de filtros que se van a mostrar en la categoría de filtro.
MaxNumberOfFilters Un entero que especifica el número máximo de filtros que se van a mostrar cuando se haga clic en el vínculo mostrar más en el elemento web de panel de refinamiento. Para mostrar todos los filtros, especifique 0 para este atributo.
SortBy Especifica el tipo de criterios para mostrar los valores de filtro en el elemento web de panel de refinamiento.

Los valores válidos son:

  • Frequency
  • NumericValue
  • Name
  • Custom   Muestra los filtros en el orden especificado en el XML del elemento web de panel de refinamiento.
SortDirection Especifica la dirección de ordenación de los valores de filtro.

Los valores válidos son Ascending o Descending.

SortByForMoreFilters Se aplica a: Búsqueda de Microsoft SharePoint Server 2010

 

Especifica los criterios de ordenación para los valores de filtro cuando se hace clic en el vínculo mostrar más. Este atributo es opcional y, si no se incluye, el valor especificado en el atributo SortBy se usa como criterio de ordenación.Los valores válidos son:

  • Frequency
  • Numeric  Requiere una asignación de intervalo.
  • Name
  • Custom  Muestra los filtros en el orden especificado en el XML del elemento web de panel de refinamiento.
SortDirectionForMoreFilters Se aplica a: Búsqueda de Microsoft SharePoint Server 2010

 

Especifica la dirección de ordenación para los valores de filtro cuando se hace clic en el vínculo mostrar más.Los valores válidos son Ascending o Descending.

Este atributo es opcional y, si no se incluye, se usa el valor especificado en el atributo SortDirection en su lugar.

ShowMoreLink Especifica si se debe mostrar el vínculo mostrar más en el elemento web de panel de refinamiento.

true para mostrar el vínculo; si no, false.

MorelinkText Una cadena que especifica el texto de vínculo para el vínculo mostrar más.
LesslinkText Una cadena que especifica el texto de vínculo para el vínculo mostrar menos.
ShowCounts Especifica si la cuenta o el porcentaje se muestran con el filtro.

Los valores válidos son:

  • Count
  • Percentage

Puede especificar un valor personalizado para este atributo si el XSLT del elemento web de panel de refinamiento se personaliza para que controle el valor personalizado.

Una  vez incluida todas las categorías deseadas deberemos copiar de vuelta el xml a la opción “Definición de categoría de filtro ”, antes de hacer clic en aceptar y guardar la pagina es necesario verificar que la opción “Usar configuración predeterminada” NO ESTE MARCADA.

Una vez cumplidos estos pasos ya debería de ser suficiente para empezar a refinar los resultados según nuestras nuevas categorías.