Artículo original publicado el martes 24 de julio de 2012

(Declinación de responsabilidades estándar: El formato del blog deja mucho que desear. Hágale un favor a sus ojos y descárguese el adjunto que es la versión en documento Word de esto.)

Bien, un título muy largo para el tema de hoy pero vamos a tratar una gran cantidad de buenos temas. SharePoint 2013 cuenta con diversas funciones sobresalientes que le permiten usar y personalizar verdaderamente los resultados de búsqueda de una forma sin precedentes. No voy a intentar proporcionarles un resumen exhaustivo de las mismas, ni siquiera los detalles más significativos de los componentes que usamos en esta publicación porque ya han sido descritos perfectamente en otra parte. Pero, les proporcionaré un conjunto inicial de resultados de búsqueda, un resumen de cada una de estas funciones y, luego, revisaremos el proceso del uso de estas funciones para crear un resultado de búsqueda alucinante y personalizado que demuestre cómo funcionan todas estas piezas en conjunto.

 

En primer lugar, empecemos con una visión general de qué aspecto tienen los resultados de búsqueda cuando ejecuto una búsqueda de "informes de ventas" en mi granja de servidores (NOTA: esto es una versión beta 2 y es posible que la versión final tenga un aspecto diferente):

 

 

Esta es una experiencia incluida con los resultados de búsqueda y tiene buen aspecto. Sin embargo, hemos agregado estas funciones para ayudarle a enriquecer verdaderamente su experiencia de búsqueda como usuario final de SharePoint 2013, de forma que debemos agregarle algo más a este supuesto. Contamos con diversas divisiones en nuestra empresa y algunas de ellas son responsables de gestionar las ventas dentro de su división. Cada división usa una plantilla Excel estándar para informar de su actividad de ventas al momento. Además, cada división dispone de una persona responsable de la gestión de las relaciones con el cliente y de la generación de informes sobre su información de ventas. De forma que, ¿cómo podemos usar estas funciones de SharePoint para ayudarnos a estandarizar y destacar la información importante sobre la división y sus clientes? Vamos a usar un método desde distintos flancos para solucionarlo.

 

Tipo de contenido personalizado

 

Para empezar, vamos a crear un tipo de contenido personalizado para todas las personas que carguen informes de ventas en SharePoint. Primero, creo las columnas del sitio que voy a usar, estos son los campos que quiero que puedan surgir en mi búsqueda de informes de ventas. En nuestro supuesto, he definido las siguientes columnas de sitio que voy a usar:

 

Nombre de columna del sitio

Tipo

Administrador de cuentas

Línea única de texto

Informes directos

Número

Región de ventas

Selección: Norteamérica, EMEA, Asia

Cuentas principales

Línea única de texto

Cuentas totales

Número

 

Después, he creado un tipo de contenido que incluye todas estas columnas de sitio. He creado el tipo de contenido en el sitio de concentrador de publicación asociado al Servicio de metadatos administrados de forma que se extienda a todos mis sitios suscritos en la granja de servidores, que en mi caso son todos los sitios de todas las aplicaciones web.

 

El paso siguiente, que en mi caso es manual, era agregar este tipo de contenido a la lista de tipos de contenido disponibles para la colección de sitios de cada división, en la biblioteca de documentos donde guardan los informes de ventas (entre otras cosas). Obviamente, hay formas de realizar esto de forma automática, pero por motivos de brevedad, lo he hecho manualmente. Bien, nuestro primer paso está hecho: ya tenemos un tipo de contenido personalizado, se ha implementado y a medida que los informes de venta se agreguen a estas bibliotecas de documentos, los administradores de cuentas podrán identificar un informe de ventas cuando lo carguen y podrán cumplimentar los metadatos.

 

Propiedades administradas

 

Ahora que tenemos estos informes de ventas llenando nuestros sitios, necesitamos crear unas propiedades administradas de las columnas del sitio personalizado del informe de ventas. En este caso no hay nada nuevo en SharePoint 2013 en comparación con SharePoint 2010 para este supuesto: deberá realizar un rastreo completo para crear las propiedades rastreadas y después crear las propiedades administradas que estén asignadas a estas propiedades rastreadas y volver a realizar un rastreo completo. Digo que no es nada nuevo para este supuesto porque estamos implementando una solución para toda la granja de servidores. Pero SharePoint 2013 dispone de una función fabulosa que permite a los administradores de colecciones de sitios marcar su colección de sitios, o sitio, o incluso crear una lista para un rastreo completo. Esto le ahorra tener que realizar un rastreo completo de la empresa cuando desee hacerlo a nivel más específico, lo cual es genial. Haré una prueba y lo explicaré en otra publicación, solo quería indicar que existe pero no es aplicable en este caso porque el ámbito de nuestra solución es para toda la granja de servidores.

 

Reglas de consulta

 

En este punto, tenemos los informes de ventas que usan un tipo de contenido personalizado y hemos gestionado las propiedades que se rellenan con valores de metadatos para esos informes de ventas. Lo próximo que tenemos que hacer es asegurarnos de que estos elementos no pasen desapercibidos cuando alguien realice una búsqueda de algo que es probable que incluya uno de estos informes de ventas. SharePoint 2013 tiene la función perfecta para ello llamada Reglas de consulta. Las reglas de consulta tienen tres componentes principales:

 

  1. Condiciones: las condiciones de una regla de consulta determinan cuando se activará una regla. Existen una serie de variaciones distintas que puede hacer con las reglas. Esto es solo un ejemplo rápido de las reglas pero existen INMENSAS posibilidades de uso y, de hecho, podrá ver algunas de ellas incluidas. Otra posibilidad distinta e interesante: si desea una regla de consulta que se ejecute para TODOS los resultados de búsqueda, entonces, simplemente no tendrá condiciones. Puede hacer justo lo contrario, por supuesto, y tener múltiples condiciones. Es posible que se dé cuenta rápidamente de cómo puede perderse en la inmensidad de posibilidades disponibles. Las condiciones que puede usar para una regla de consulta incluyen:
    1. una consulta que empiece o termine con una frase o palabra en concreto
    2. una consulta que contenga una palabra de acción (palabras que defina que normalmente sean verbos como "descargar", etc.)
    3. una consulta que contenga una palabra que se encuentre en el conjunto de términos de metadatos administrados (puede lograr cosas ALUCINANTES con esto)
    4. una consulta que sea común en otro origen de resultados, como resultados de vídeo, resultados de documentos, etc., puede ser cualquier cosa que defina y cree orígenes de resultados
    5. los resultados que contengan un tipo de resultado seleccionado normalmente como discusiones, hojas de cálculo de Excel, etc.
    6. reglas avanzadas, en las que puede volverse loco con las expresiones regulares, división de la consulta en términos de acción y términos de sujeto (lo que queda una vez se han eliminado los términos de acción), etc.
  2. Acciones: las acciones son lo que va a hacer cuando se cumplan las condiciones para su regla de consulta. En este caso también tiene tres opciones distintas, puede:
    1. Agregar resultado promocionado: es parecido a cómo funciona Opciones más probables en SharePoint 2010 y Opciones más probables visuales con la búsqueda FAST en SharePoint 2010. Puede agregar un nuevo vínculo que aparecerá encima de todos los resultados de búsqueda. Puede elegir que el vínculo aparezca representado como un hipervínculo o como una imagen, de ahí la analogía de Opciones más probables visuales.
    2. Agregar bloque de resultados: un bloque de resultados es donde ejecuta una consulta adicional y se devuelven y representan los resultados junto con los resultados de la búsqueda original. Se llama bloque porque los resultados se representan todos juntos, en un bloque. Puede hacer que el bloque se muestre en la parte superior de todos los resultados de búsqueda o puede hacer que aparezcan entremezclados con los otros resultados de búsqueda según una clasificación. Es importante señalar que esto NO SIGNIFICA que haga una clasificación por relevancia entre las dos consultas. Simplemente significa que el bloque en conjunto tendrá una clasificación junto con todos los demás resultados de búsqueda locales. Si hace clic en cualquier elemento del bloque de resultado, esta acción de clic se registra de forma local y el bloque como unidad pasa a ser más relevante. Así que si los elementos del bloque obtienen muchos clics, con el tiempo, el bloque empezará a desplazarse hacia arriba en los resultados porque tendrá una mayor relevancia que los resultados individuales que no se seleccionan con tanta frecuencia. En realidad hay una GRAN cantidad de cosas que puede hacer para configurar su bloque de resultados, pero no voy a profundizar en ellas ahora mismo.
    3. Resultados clasificados modificados por el cambio de consulta: esta opción autoexplicativa hace justamente lo que indica. Efectivamente puede proceder a cambiar la consulta solicitada de la forma que desee. Puede agregar criterios adicionales, puede eliminar términos, puede usar XRANK para modificar la clasificación, hay una gran cantidad de opciones disponibles.
  3. Publicación: la publicación le permite controlar si se usa y cuando se usa una regla de consulta. Por ejemplo, usted puede querer crear una serie de reglas que desea que se ejecuten en la venta del día después de acción de gracias. Pero, no desea que se ejecuten hasta que llegue ese día. De modo que puede crear las reglas, pero configurar la publicación de forma que la regla esté inactiva. O, puede activar la regla pero configurarla para que no se ejecute hasta un día en concreto y que se detenga en una fecha posterior.

Bien, esto era el "breve" resumen sobre qué son las reglas de consulta, pero ¿cómo las vamos a usar en este caso? Pues resulta que hay una regla de consulta ya incluida que se encargará de esto por nosotros. De hecho, había desactivado la regla cuando tomé la captura de pantalla anterior para que pudiera entender mejor su efecto. En nuestro caso, queremos que para las consultas en las que alguien quiera ver un informe de ventas aparezca un informe de la división de ventas y no pase desapercibido. De modo que, vaya a Buscar colección de sitios, Configuración del sitio y haga clic en vínculo Reglas de consulta. En el menú desplegable Seleccione un origen, haga clic y seleccione Resultados de datos e informes locales, verá una regla de consulta llamada Informes y datos. Haga clic en ella y seleccione Ver del menú desplegable para ver la construcción de la regla. Funciona de la siguiente manera:

 

  • Condición: la condición de la regla es que la consulta contenga una de estas palabras al principio o al final de la consulta: análisis, cubo, panel, paneles, datos, base de datos, informe, informes, ventas. Tenga en cuenta que aquí puede ver tanto los informes como ventas. Así que si alguien realiza una consulta de "informe de ventas", entonces se ejecutará esta regla de consulta. Esto parece perfecto, si alguien busca "informe de ventas" QUEREMOS que vean nuestros informes de ventas de división. Como parte de esta regla, asigna la concordancia a términos de acción y todo lo demás se asigna a los términos de sujeto. En este caso, asigna "informes" a término de acción y "ventas" como término sujeto.
  • Acción: la acción de esta regla es simplemente realizar otra consulta basada SOLO en los términos sujeto. De forma que, en base a la condición anterior, realizará una consulta aparte solo para "ventas". Esto agregará un bloque que siempre se devolverá encima de todos los demás resultados. PERO... SOLO va a buscar ventas en el origen de Resultados de datos e informes locales. Este es un origen de resultados que también está ya incluido y que devuelve solo documentos Excel (extensiones de archivo acabadas en .XLSX, .XLS, etc.) de forma efectiva. Bien, pues es una consulta que realiza una consulta de "ventas" solo en los documentos Excel.
  • Publicación:

 

He reactivado esta regla de consulta, de modo que este es el aspecto que tienen ahora los resultados cuando realizo una consulta sobre informes de ventas:

 

 

Genial, esto cada vez va mejor: la regla de consulta ha hecho su aparición y ahora obtenemos nuestros documentos en base a nuestro tipo de contenido de informe de ventas personalizado en la parte superior de los resultados, ¡fenomenal! Sin embargo, todavía no mostramos ninguno de los metadatos sobre los documentos que es lo que realmente hace posible todo esto.

 

Plantillas para mostrar

 

En SharePoint 2010 si deseaba representar un elemento en concreto de forma distinta, suponía un proceso bastante arduo de ir y modificar una parte ENORME de XSLT en la parte web de resultados central. Tenía que poner en práctica unas buenas habilidades en XSLT e intentar encontrar el lugar correcto en un documento enorme donde insertar su código personalizado. En general, era una experiencia lejos de ser placentera.

 

En SharePoint 2013 (sáltese la música), tenemos las plantillas para mostrar y la mejora que suponen. Ya no depende de un conocimiento experto en XSLT, ahora puede crear un código para mostrar personalizado como HTML directo, ¡viva! De hecho, para esta publicación de hecho, he usado Dreamweaver CS6 de Adobe para crear el "código" de mi plantilla para mostrar personalizada. Así que, ¿cómo funcionan las plantillas para mostrar?

 

Con una plantilla para mostrar, hay unas cuantas cosas para estar al día:

 

  1. Propiedades administradas: debe indicarle qué propiedades administradas necesita recuperar en el momento de la consulta. Estas propiedades podrá utilizarlas entonces en su HTML siguiendo un método que describiré a continuación.
  2. JS y CSS externos: si tiene algún archivo javascript o CSS que desee usar con su plantilla para mostrar, puede externalizarlos y agregarlos a su plantilla para mostrar.
  3. JS en línea: también puede usar JS en línea en su plantilla para mostrar. Tan solo debe asegurarse de que se encuentra por debajo del primer <div> de su plantilla para mostrar, además de más a continuación.
  4. HTML:

 

Para nuestra plantilla para mostrar, vamos a reunir los atributos del tipo de contenido de informe de ventas personalizado que hemos creado para que se muestren en los resultados de búsqueda de la siguiente forma:

 

 

Empecemos. Primero, casi siempre es mejor empezar con una plantilla para mostrar existente cuando cree una plantilla nueva. Si va a su colección de sitio de centro de búsqueda, Configuración del sitio, luego haga clic en el vínculo Páginas maestras y diseño de páginas. Cuando obtenga acceso a la biblioteca, haga clic en la carpeta Plantillas para mostrar y luego haga clic en la carpeta Buscar. Aquí encontrará todas las plantillas para mostrar que se ofrecen ya incluidas. Es posible que vea algunos archivos con el mismo nombre pero con el sufijo .html o .js. Todos lo que le debe importar son los archivos .html, los archivos .js se generan automáticamente cuando carga un archivo .html. En este caso, la plantilla para mostrar es para archivos Excel así que he empezado a partir del archivo Item_Excel.htm. He descargado una copia local, le he cambiado el nombre por InformeVentas.html y luego lo he abierto con Dreamweaver.

 

Después he agregado mis propiedades administradas.  Hay una etiqueta llamada mso:ManagedPropertyMapping en la que puede introducir las propiedades administradas que necesite su plantilla para mostrar. He agregado la mía al final de la lista usando el mismo formato que la resta de las propiedades administradas y tiene este aspecto:

 

<mso:ManagedPropertyMapping msdt:dt="string">'Title':'Title', 'Author':'Author', 'Size':'Size', 'Path':'Path', 'Description':'Description', 'LastModifiedTime':'LastModifiedTime', 'CollapsingStatus':'CollapsingStatus', 'DocId':'DocId', 'HitHighlightedSummary':'HitHighlightedSummary', 'HitHighlightedProperties':'HitHighlightedProperties', 'FileExtension':'FileExtension', 'ViewsLifeTime':'ViewsLifeTime', 'ParentLink':'ParentLink', 'ViewsRecent':'ViewsRecent', 'FileType':'FileType', 'IsContainer':'IsContainer', 'ServerRedirectedURL':'ServerRedirectedURL', 'ServerRedirectedEmbedURL':'ServerRedirectedEmbedURL', 'ServerRedirectedPreviewURL':'ServerRedirectedPreviewURL', 'AccountManager':'AccountManager', 'SalesRegion':'SalesRegion', 'TotalAccounts':'TotalAccounts', 'TopAccounts':'TopAccounts', 'DirectReports':'DirectReports', 'ContentType':'ContentType'</mso:ManagedPropertyMapping>

 

Como puede ver, he agregado AccountManager, SalesRegion, etc., todas las propiedades que he creado para mi tipo de contenido personalizado. Después me he desplazado hacia abajo hasta donde pone:

 

<div id="_#= $htmlEncode(itemId) =#_" name="Item" data-displaytemplate="ExcelItem" class="ms-srch-item" onmouseover="_#= ctx.CurrentItem.csr_ShowHoverPanelCallback =#_" onmouseout="_#= ctx.CurrentItem.csr_HideHoverPanelCallback =#_">

                                                                _#=ctx.RenderBody(ctx)=#_                                                     

                <div id="_#= $htmlEncode(hoverId) =#_" class="ms-srch-hover-outerContainer"></div>

</div>

 

Y he eliminado todo lo que se encuentra entre las etiquetas DIV exteriores (las cuales he destacado en rojo)   Ahora puedo escribir mi HTML. Pero antes de eso, hay tres cosas que debería saber antes de empezar:

 

  1. Probablemente le será más fácil mantener la etiqueta <style> en la sección <head> de su plantilla para mostrar. Por motivos en los que no voy a profundizar ahora estas etiquetas de estilo se descartarán cuando se represente la plantilla para mostrar, de forma que deberá copiar las etiquetas de estilo y colocarlas en un archivo CSS a parte. Sin embargo, cuando esté creando su HTML puede usar y modificar las etiquetas de estilo para asegurarse de que reflejan el aspecto y la sensación que desee para su plantilla para mostrar.
  2. Como he mencionado anteriormente, puede agregar lo que he llamado javascript en línea, lo que significa que puede agregar código javascript siempre que esté en el lugar correcto. El lugar correcto de una plantilla para mostrar significa que debe estar situado después de la primera etiqueta DIV de la plantilla para mostrar. Además, debe estar entre el conjunto de etiquetas de apertura y de cierre que tiene este aspecto :  <!--#_ y _#-->.  Ofreceré más información sobre las etiquetas personalizadas a continuación, pero es suficiente con decir que si no tiene su javascript entre estas etiquetas, no se ejecutará. Una cosa genial sobre sobre esto es que puede usar variables que defina en su javascript en línea al crear el HTML y se mostrarán en el resultado. Lo explicaré con más detalle en el próximo punto.
  3. Para emitir una propiedad o variable administrada de cualquier javascript en línea que haya creado, deberán estar adjuntos a un conjunto de etiquetas de apertura y cierre que tenga este aspecto:  _#= and =#_.   Todas las propiedades administradas están disponibles en un objeto llamado ctx.CurrentItem. Por ejemplo, para emitir la propiedad administrada AccountManager, debería agregar esta etiqueta:  _#= ctx.CurrentItem.AccountManager =#_.  Si tuviera un javascript con este aspecto: var foo = “El administrador de cuenta actual es “ + ctx.CurrentItem.AccountManager + “.”;, entonces para emitir “foo” agregaría esta etiqueta:  _#= foo =#_.  Esto le proporciona una flexibilidad completa para agregar o procesar datos con los que trabajar en su plantilla para mostrar.

 

Bien, ahora que comprende los mecanismos de creación de HTML, esto es lo que he usado para crear la plantilla para mostrar que he enseñado anteriormente; en la etiqueta de encabezado he agregado estos atributos de estilo:

 

<style>

.ReportDiv

{

                float:left;

}

.ReportText

{

                font-family: Verdana, Geneva, sans-serif;

                font-size: 12px;

}

.ReportHeading

{

                font-weight: bold;

}

.LogoImg

{

                margin-top: 15px;

                width: 118px;

                height: 101px;

}

.MasterDiv

{

                float:left;

                height: 215px;

                width: 342px;

                background-repeat: no-repeat;

                background-image: url(http://sps/sites/search/PublishingImages/SalesReportBackground.PNG);

                padding: 15px;

}

.DetailsContainer

{

                background-color:#CCC;

}

</style>

 

Lo único que vale la pena comentar es que la imagen que uso para el fondo de los detalles del administrador de cuenta es una que he cargado previamente en mi sitio; todo lo demás debería ser relativamente fácil de entender. Una vez más, al tener esta etiqueta de estilo en mi sección <head> puedo ver exactamente qué aspecto tendrá el diseño mientras lo diseño en Dreamweaver.

A continuación, vamos a mirar el HTML en sí que hemos usado para crear esta plantilla para mostrar:

            <div>

                <div class="ReportDiv">

                                <img class="LogoImg" src="http://sps/sites/search/PublishingImages/SalesReportLogo.PNG" />

                </div>

                <div class="MasterDiv">

                   

                    <!-- Título y vínculo al elemento -->

                    <a href="_#= ctx.CurrentItem.Path =#_" class="ReportText">_#= ctx.CurrentItem.Title =#_</a>

                    <br/><br/>

 

                    <!-- Administrador de cuentas -->

                    <span class="ReportHeading ReportText">

                      Gestor de cuentas:

                    </span>

                    <span class="ReportText">

                      _#= ctx.CurrentItem.AccountManager =#_

                    </span><br/>

                   

                    <!-- Región de ventas -->

                    <span class="ReportHeading ReportText">

                      Región de ventas:

                    </span>

                    <span class="ReportText">

                      _#= ctx.CurrentItem.SalesRegion =#_

                    </span><br/>

                   

                    <!-- Cuentas en total -->

                    <span class="ReportHeading ReportText">

                      Cuentas en total:

                    </span>

                    <span class="ReportText">

                      _#= ctx.CurrentItem.TotalAccounts =#_

                    </span><br/>

                   

                    <!-- Cuentas principales -->

                    <span class="ReportHeading ReportText">

                      Cuentas principales:

                    </span>

                    <span class="ReportText">

                      _#= ctx.CurrentItem.TopAccounts =#_

                    </span><br/>

                   

                    <!-- Informes directos -->

                    <span class="ReportHeading ReportText">

                      Informes directos:

                    </span>

                    <span class="ReportText">

                      _#= ctx.CurrentItem.DirectReports =#_

                    </span><br/>

                   

                    <!--  Texto de resultados destacado -->

                    <br/>

                    <span class="ReportHeading ReportText">

                                Detalles:

                    </span>

                    <br/>

                    <span class="DetailsContainer ReportText">

                                _#= Srch.U.processHHXML(ctx.CurrentItem.HitHighlightedSummary) =#_

                    </span>

                </div>

            </div>        

 

No voy a hablar de las características de formato de este contenido y simplemente me centraré en los datos. Puede ver donde he introducido las propiedades administradas usando las etiquetas _#= y =#_.  Comprobará que esto es simplemente una sustitución de token de forma que incluso puedo usarlo directamente en mi atributo <a> href anterior (a diferencia de hacerlo con XSLT lo cual involucra mucho más). El resto de los campos se colocan simplemente en las etiquetas DIV o SPAN adecuadas para el formato. El caso "especial" mostrado es para el resumen de resultados destacados, el cual usa un componente de procesado incorporado incluido en la búsqueda. Ahora mismo no dispongo de una lista completa de componentes y métodos y qué hacen, pero agrego esto porque si no lo usa, su resumen no tendrá resultados destacados. De modo que asegúrese de usar este método para esto.

 

Ahora que ya está todo en funcionamiento, hay algo que debo hacer en mi marca. Copio todo lo que se encuentra en mis etiquetas <style> y lo pego en un documento CSS nuevo llamado SalesReport.css En la galería de mi página maestra, en la carpeta /Plantillas para mostrar/Buscar, he creado otra carpeta llamada estilos. He cargado mi archivo SalesReport.css en ese directorio. Para usarlo en mi plantilla para mostrar tengo que agregar una nueva etiqueta de script. Debe encontrarse debajo de la etiqueta <body> y antes de la primera etiqueta <div>.  Uso una función de javascript SharePoint llamada $includeCSS para que mi archivo CSS sea incluido en mi plantilla para mostrar. La marca de apertura tiene este aspecto.

 

<body>

<script>

                                $includeCSS(this.url, "./styles/SalesReport.css");

</script>

 

<div id="Item_SalesReport">

 

Bien, ya hemos acabado con el código pero ¿cómo logramos que se use nuestra plantilla para mostrar personalizada?

 

Tipos de resultado

Los tipos de resultado son la forma en la que logra que se llamen a las plantillas para mostrar, en base a un conjunto de reglas. Las reglas son bastante sencillas de usar, puede hacer que se activen para un tipo de contenido específico predefinido, como un correo electrónico, un PDF, un documento Word, un Wiki de SharePoint, etc. Además de esto, existe la posibilidad de usarlos solo cuando la consulta es de un origen de resultado específico. En último lugar, también puede elegir cualquier propiedad administrada como criterio para la regla, con cualquier comparación común. Por ejemplo, puede hacer que la regla de tipo de resultado solo se active cuando el campo de administrador de cuentas contenga "Vicepresidente", si desea tener un tipo de visualización distinta para sus vicepresidentes. En nuestro caso, queremos que nuestro tipo de resultado se active solo cuando el tipo de contenido sea "Informe de ventas". De forma que agregamos una condición para nuestro tipo de resultado que diga que indique cuando el tipo de contenido sea igual a "Informe de ventas".

 

 

Como puede ver, incluso podríamos agregar múltiples valores para la concordancia. También podemos agregar múltiples propiedades unidas por AND. En este supuesto, el tipo de contenido es todo lo que necesitamos. Una vez hayamos definido las condiciones. podemos configurar la acción de la regla. Para un tipo de resultado, la acción es simplemente una lista desplegable con todas las plantillas para mostrar disponibles. Todo lo que tengo que hacer es elegir mi plantilla para mostrar de Informe de ventas de la lista desplegable y hacer clic en el botón Guardar para crear mi tipo de resultado. Una vez más, si no está seguro de cómo crear tipos de resultado, consulte los tipos de resultados incluidos en SharePoint. Puede sacar muchas ideas para nuevos tipos de resultado si echa un vistazo a los existentes.

 

Unión de todas las piezas

Ahora que tenemos todas las piezas dispuestas: un tipo de contenido personalizado que capture los metadatos que deseamos, algunas propiedades administradas para extraerlas e incluirlas en el índice, una regla de consulta que garantice que nuestro contenido de informes de ventas aparece en la parte superior de la lista cuando alguien consulte "informe de ventas", una plantilla para mostrar personalizada que muestre los metadatos capturados de forma única y en un formato útil que no se parezca al resultado de búsqueda típico y un tipo de resultado que asegura que nuestra plantilla para mostrar se usa cuando se devuelve nuestro tipo de contenido personalizado en los resultados de búsqueda. El resultado final cuando hayamos terminado tiene este aspecto:

 

 

Esto concluye esta introducción a algunas de las geniales funciones de SharePoint 2013 para presentar los resultados de búsqueda. Espero que haya obtenido una visión de las capacidades de estas funciones y que encuentre muchas formas útiles e interesantes para usarlas.

Esta es una versión localizada de la publicación en el blog. Podrá encontrar el artículo original en Using Query Rules, Result Types and Display Templates for a Custom Search Sales Report in SharePoint 2013