Etiquetas

, , , , , , , , ,

Por alguna razón, supongo que justificada, los ingenieros de Microsoft decidieron que al realizar una búsqueda en SharePoint el título del resultado para el caso de los documentos sea el Titulo del mismo el cual obtiene de la primera página del documento, obviamente en esto están involucrados varios condicionales a la hora de mostrar el título u otra propiedad de rastreo, pero al menos en los documentos de office es muy común que ocurra.

Un problema algo común es que se carguen documentos a una librería de SharePoint  con diferentes nombres  pero que por tener el mismo título en la portada SharePoint al realizar una búsqueda asuma que son duplicados y no aparezcan en los resultados de búsquedas al menos que seleccionamos la opción de ver duplicados. Por esta razón y otras más podría ser conveniente que SharePoint en los resultados de búsqueda nos devuelva como título el nombre del documento y no el título que ha interpretado de la información de la primera página.

Como hacemos esto:

Lo primero es ubicar la propiedad administrada isDocument y asegurarnos que está configurada para ser utilizada en ámbitos.

Luego tenemos que hacer algunos ligeros cambios en el xsl que formatea los resultados de las búsquedas, ya hablamos de cómo hacer esto en un antiguo post.

 Para este caso en el xsl vamos hasta donde dice:

<div class=”srch-Title2″>>

  <div class=”srch-Title3″>

A partir de aquí se empieza a dar formato al título del resultado de búsqueda.

Ahora debemos sutituir:

<xsl:choose>

                                  <xsl:when test=”hithighlightedproperties/HHTitle[. != ”]”>

                                        <xsl:call-template name=”HitHighlighting”>

                                               <xsl:with-param name=”hh” select=”hithighlightedproperties/HHTitle” />

                                        </xsl:call-template>

                                  </xsl:when>

                                  <xsl:otherwise>

                                        <xsl:value-of select=”title”/>

                                  </xsl:otherwise>

                           </xsl:choose>

Por:

<xsl:if test=”isdocument = ‘True'”>

                           <xsl:value-of select=”filename”/>

                    </xsl:if>

                    <xsl:if test=”isdocument = ‘False'”>

                           <xsl:choose>

                                  <xsl:when test=”hithighlightedproperties/HHTitle[. != ”]”>

                                        <xsl:call-template name=”HitHighlighting”>

                                               <xsl:with-param name=”hh” select=”hithighlightedproperties/HHTitle” />

                                        </xsl:call-template>

                                  </xsl:when>

                                  <xsl:otherwise>

                                        <xsl:value-of select=”title”/>

                                  </xsl:otherwise>

                           </xsl:choose>

                    </xsl:if>

En resumen comprobamos si el resultado es un documento, si es así hacemos que muestre el nombre (FileName) de lo contrario se comporta como hasta ahora lo ha venido haciendo mostrando la propiedad administrada title.