El monstruito no soy yo, es el SharePoint

El Blog de Luis Mañez, dedicado a tecnologías MS, principalmente SharePoint y Office 365

SharePoint 2010: Como sacar la fecha de creación de un elemento en los resultados de la búsqueda

Si usamos la búsqueda de SharePoint 2010, vemos que por defecto, tenemos disponibles los siguientes campos:

   1: <Column Name="WorkId"/>
   2: <Column Name="Rank"/>
   3: <Column Name="Title"/>
   4: <Column Name="Author"/>
   5: <Column Name="Size"/>
   6: <Column Name="Path"/>
   7: <Column Name="Description"/>
   8: <Column Name="Write"/>
   9: <Column Name="SiteName"/>
  10: <Column Name="CollapsingStatus"/>
  11: <Column Name="HitHighlightedSummary"/>
  12: <Column Name="HitHighlightedProperties"/>
  13: <Column Name="ContentClass"/>
  14: <Column Name="IsDocument"/>
  15: <Column Name="PictureThumbnailURL"/>
  16: <Column Name="PopularSocialTags"/>
  17: <Column Name="PictureWidth"/>
  18: <Column Name="PictureHeight"/>
  19: <Column Name="DatePictureTaken"/>
  20: <Column Name="ServerRedirectedURL"/>

Para ver qué campos tenemos disponibles, podemos seguir los pasos de este post:

http://sharepointmalarkey.wordpress.com/2011/01/31/search-core-results-web-part-how-to-view-raw-xml/

Que básicamente consiste en usar este xslt en el webpart de Resultados de la búsqueda:

   1: <?xml version="1.0" encoding="UTF-8"?>
   2: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   3: <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
   4: <xsl:template match="/">
   5: <xsl:copy-of select="*"/>
   6: </xsl:template>
   7: </xsl:stylesheet>

Volviendo al listado de los campos por defecto, fijaros como en dichos campos, tenemos un campo llamado “Write”, que si vemos los resultados de la búsqueda, parece la fecha de creación del elemento. Digo parece, porque en realidad no es esa fecha.

Si quitáis la programación de la indexación de contenidos del buscador, creáis varios elementos en listas y bibliotecas de SharePoint, y pongamos, una hora después, hacéis una indexación completa de contenidos desde el buscador. Veréis que la fecha/hora que aparece en los resultados de la búsqueda, no es la fecha de creación real del ítem, sino la fecha/hora en la que se indexó el elemento en el índice del buscador.

Pero entonces, ¿cómo podemos sacar la fecha/hora real de creación del elemento?

Pues bien, para ello, vamos a tener que crear nosotros una nueva propiedad administrada, y vincularla a varias propiedades rastreadas.

Antes de hacerlo, comentaros que en este link, tenéis un listado de las propiedades rastreadas que existen por defecto en un servicio de búsqueda recién creado. Tened en cuenta que cuando SharePoint realiza una indexación, ese listado de propiedades rastreadas va cambiando. Es importante conocer cuáles están por defecto, por si nuestra aplicación necesita configurar alguna propiedad administrada, que se apoya en una rastreada. Si la rastreada no existe por defecto, también tendremos que crearla.

Volviendo a las propiedades rastreadas por defecto, vemos que, curiosamente, no aparece ninguna propiedad rastreada, que esté mapeada a la propiedad “write”. Sin embargo, os aseguro que la propiedad administrada “write”, existe por defecto. Supongo que el motivo será que no está completa la documentación.

También vemos que existe una propiedad rastreada llamada “ows_Created(Text)”, pero, extrañamente, al vincularla a una propiedad administrada, y sacarla en los resultados de la búsqueda, nos aparece sin ningún valor.

¿Qué propiedad debemos utilizar? Pues parece ser qué la propiedad también depende del tipo de contenido que se rastrea e indexa. Yo he trabajado con listas personlizadas, que heredan del tipo de contenido base “Item”. En esos casos, la propiedad rastrada que debemos mapear es: Basic:15(Date and Time)

Aquí tenemos la configuración de la propiedad administrada que he creado para tener acceso a la fecha de creación de un ítem, en los resultados de la búsqueda:

image

Como os digo, esto puede depender del tipo de contenido, así que es posible que en vuestro caso, debáis vincular otras propiedades administradas. Según he podido leer, sería:

  1. Basic:15(Date and Time)
  2. ows_Start_x0020_Date(Date and Time)
  3. ows_StartDate(Date and Time)
  4. Office:12(Date and Time)
  5. creationdate(Date and Time)

Espero que os sirva.

Saludos!!

Posted: 31/5/2012 18:50 por Luis Mañez | con no comments
Archivado en: ,
Comparte este post: