Share via


SharePoint 2013: Personalizando Nuestro Buscador

Esto podemos usar para mostrar algún dato de una columna en nuestro Buscador o bien agregar algún dato del User Profile.

Para empezar tenemos que definir es la propiedad que vamos a buscar. Para eso tenemos que acceder a la Central Administrator.

Inicio > Todos los Programas > Sharepoint 2013 > Administración central de Sharepoint 2013

https://stucker2016.files.wordpress.com/2016/04/consola.png

Una ves dentro tenemos que ir a Administrar aplicaciones de servicio  dentro del grupo Administración de Aplicaciones

https://stucker2016.files.wordpress.com/2016/04/administracion-aplicaciones.png

Buscamos el servicio de Busqueda por defecto tiene el nombre "Aplicación de servicio de búsqueda"

 

https://stucker2016.files.wordpress.com/2016/07/busqueda.png?w=680

Dentro del servicio de Búsqueda, vamos a Esquema de Búsqueda en el grupo Consultas y Resultado del menú de Navegación.

https://stucker2016.files.wordpress.com/2016/07/esquema.png

Ahora vamos a tener que buscar las propiedades que queremos mostrar. Un detalle importante.

Si la Columna esta creada como columna de Sitio esta crea la propiedad automáticamente siguiendo el cuadro que les pongo a continuación:

Tipo de Columna de Sitio Nombre de la Propiedades rastreadas Nombre de la Propiedades administradas Fomato de los Datos
Linea Simple de Texto ows_q_TEXT_NombreDeLaColumna NombreDeLaColumnaOWSTEXT Normal
Multiple lineas de Texto ows_r_MTXT_NombreDeLaColumna NombreDeLaColumnaOWSMTXT Normal
Elección ows_q_CHCS_NombreDeLaColumna NombreDeLaColumnaOWSCHCS El texto seleccionado
Elección(con multiples opciones) ows_q_CHCM_NombreDeLaColumna NombreDeLaColumnaOWSCHCM

El texto de los valores seleccionados separados por una semicolumna y el id del item por ejemplo

2;# Valor 4;#. Valor

Numero ows_q_NMBR_NombreDeLaColumna NombreDeLaColumnaOWSNMBR

Va a mostrar el valor textual usando el punto para mostrar los decimales.

Tengan en cuenta que esto no puede usarse con otro Entero ya que solo sirve para buscar y mostrar.

Moneda ows_q_CURR_NombreDeLaColumna NombreDeLaColumnaOWSCURR

Va a mostrar el valor textual usando el punto para mostrar los decimales.

Tengan en cuenta que esto no puede usarse con otro Entero ya que solo sirve para buscar y mostrar.

Fecha y hora ows_q_DATE_NombreDeLaColumna NombreDeLaColumnaOWSDATE

Muestra textual el valor que posee el campo con el formato YYYY-MM-DDTHH:MM:SSZ. For example, Diciembre 25, 2012, 7 AM GMT is 2012-12-25T07:00:00Z.

Este formateo no puede ser usado para ningun tipo de comparación es solo a modo ilustrativo.

Si / No ows_q_BOOL_NombreDeLaColumna NombreDeLaColumnaOWSBOOL Para verdadero va a un 1 y para negativo va a mostrar un 0.
Persona o Grupo ows_q_USER_NombreDeLaColumna NombreDeLaColumnaOWSUSER Mail | Nombre a Mostgrar | Nombre | Codificación del Clain. Por Ejemplo, "ellenk@contoso.com | Ellen Kessels | 693A30232E777C7265646D6F6E645C70696E676A i:0#.w|contoso\ellenk”
Imagen o Enlace ows_q_URLH_NombreDeLaColumna NombreDeLaColumnaOWSURLH URL, descripción. Por Ejemplo, http://stucker2016.wordpress.com, Lo que Sharepoint nos dejo.
Publicación de HTML ows_r_HTML_NombreDeLaColumna NombreDeLaColumnaOWSHTML Muestra los tags de Html . Por Ejemplo, <p>&lt;div&gt;&lt;b&gt;some html &lt;/b&&lt;/div&gt;</p>.
Publicación de Imagen ows_q_IMGE_NombreDeLaColumna NombreDeLaColumnaOWSIMGE Html imagen tag. Por ejemplo, <img alt="" src="/sites/pub/SiteCollectionImages/home.jpg" style="BORDER:0px solid;" />.
Publicación de Enlance ows_q_LINK_NombreDeLaColumna NombreDeLaColumnaOWSLINK Html Enlace tag.Por Ejemplo, <a href="http://www.microsoft.com" target="_blank" title="mytooltip">Microsoft Website</a>.
Administrador de MateData ows_taxId_NombreDeLaColumna owstaxIdNombreDeLaColumna Muestra el valor seguido por el GUID de su id unico.
Entero ows_q_INTG_NombreDeLaColumna NombreDeLaColumnaOWSINTG

Muestra el valor textual.

Este valor no puede ser usado para hacer una comparación.

GUID ows_q_GUID_NombreDeLaColumna NombreDeLaColumnaOWSGUID El valor textual de una Guid. Por ejemplo, {147C6BA1-709C-4401-964A-27AC36B62C54}.

Y van a poder verla en la pagina de Propiedades Administrativas sino van a tener que crearla.

No importa cual de las dos opciones tengan que tomar asegúrense que la propiedad administrativa contenta los siguientes tildes.

https://stucker2016.files.wordpress.com/2016/07/permite-busqueda.png

https://stucker2016.files.wordpress.com/2016/07/parametros.png?w=680

También vamos a usar esta propiedad como Refinador de la Búsqueda por lo que seleccionen Si, Activa en la propiedad Restringible.

https://stucker2016.files.wordpress.com/2016/07/restringuible.png

En caso de haber creado la propiedad vallan en la parte de abajo. Hasta la sección Asignaciones a propiedades rastreadas

Apretamos Agregar una asignación.

https://stucker2016.files.wordpress.com/2016/07/agregar-una-asignacion.png

Les va a abrir un cuadro de búsqueda, pongan el nombre de la lista sin espacios por ejemplo en mi caso es Organismo. No necesitan poner el nombre completo.

https://stucker2016.files.wordpress.com/2016/07/seleccione-asignaciopn.png

En mi caso aparecen dos por que tengo una columna de Lista y una de Sitio. Pueden asignar múltiples columnas a un misma propiedad.

Seleccionen la propiedad y apreten Aceptar.

Les Debería quedar algo así:

https://stucker2016.files.wordpress.com/2016/07/asignacion.png?w=680

Apreten nuevamente Aceptar

Ahora bien, para que esto tome efecto vamos a tener que hacer un Rastreo completo de los sitios para que las propiedades contengan los datos de la lista. 

Para eso en el menú de navegación vamos a Orígenes de Contenido dentro del grupo Rastreo.

https://stucker2016.files.wordpress.com/2016/07/rastreo.png

Expandan el menú desplegable del contenido del sitio y seleccionen Iniciar rastreo Completo

https://stucker2016.files.wordpress.com/2016/07/rastreo-completo.png

Va a empezar a correr. 

https://stucker2016.files.wordpress.com/2016/07/iniciando-rastreo.png

Esperamos a que termine y este en estado Inactivo.

https://stucker2016.files.wordpress.com/2016/07/rastreo-complatado.png

Ahora llego el momento de Modificar el buscador para que podamos refinar la búsqueda y que aparezcan nuestras propiedades en los items. 

Para eso vamos a nuestro Centro de Búsqueda Empresarial, en caso de no tenerlo creen uno.

tienen que entrar a la pagina /Paginas/results.aspx en mi caso seria la url completa http://spsdev01/Busqueda/Paginas/results.aspx donde Busqueda es mi Colección de sitios de Centro de Busqueda Empresarial.

Ahora una ves dentro de la pagina vallan a la Tuerca > Editar página

https://stucker2016.files.wordpress.com/2016/07/editar-pagina.png

Primero vamos a agregar el refinador, para eso nos situamos en la Zona de navegación y seleccionamos Refinamiento.

En la ribbon seleccionamos Elemento Web > Propiedades de Elementos Web

https://stucker2016.files.wordpress.com/2016/07/elemento-web.png

Nos va a dar las opciones de la Web Part 

https://stucker2016.files.wordpress.com/2016/07/propiedades-de-la-web-part.png

Apreten el Botón Elegir refinadores

Seleccionamos la propiedad que queremos y ponemos Agregar >

https://stucker2016.files.wordpress.com/2016/07/selecionamos-refinador.png

Apreten Aceptar.

Nota: Pueden ponerle un Alias o otras propiedades o mismo ordenar el orden de los refinadores.

Apretamos de nuevo Aceptar para que tome los cambios. 

Antes de Cerrar la pagina necesitamos hacer una modificación mas. Seleccionen Resultados de Búsqueda y en la ribbon  apreten en Propiedades de elementos Web

Una vez que muestre las propiedades seleccionen Use una plantilla única para mostrar elementos y en el desplegable Plantilla para mostrar elementos seleccionen Elemento Predeterminado

https://stucker2016.files.wordpress.com/2016/07/plantilla.png

Ahora apreten Aceptar.

Ahora en la Ribbon Vallan a Publicar > Publicar

https://stucker2016.files.wordpress.com/2016/07/publicar.png

Les pira un comentario, esto es opcional pueden colocarlo o no.

https://stucker2016.files.wordpress.com/2016/07/comentario-publicaar.png

Apreten Continuar.

Ahora bien vamos a modificar el Script para mostrar los datos que queremos en los items. 

Para eso vamos a necesitar el Sharepoint Designer  

Ingresen al sitio con el y vallan a Todos los archivos > _catalogs > masterpage > Display Templates > Search 

https://stucker2016.files.wordpress.com/2016/07/path-scripts.png?w=680

Ahora bien, ustedes verán que aparecen unos símbolos al lado de ciertos archivos, es por que estuve jugando con mis archivos. Eso indica que el archivo no es el original del sitio.

Ahora vamos a hacer un pequeño repaso de lo que vamos a hacer para que todos estemos en sintonia. 

Primero que nada van a ver que hay un .html y un .js por cada archivo si ustedes modifican el Html directo este se replicara en el js y no asi el js asi el html. Por lo que les aconsejo siempre modificar el html.

Ahora bien, vamos algo importante antes de empezar a jugar con los archivos. 

Los items de búsqueda están separados en varios tipos Nosotros nos vamos a concentrar en los que empiezan con Item_

Ahora bien van a ver que por ejemplo para el Item propiamente tenemos varios archivos el que esta con recuardo en rojo es el archivo Item_Default.html y el azul corresponde al archivo Item_CommonItem_Body.html

https://stucker2016.files.wordpress.com/2016/07/item-busqueda-body.png

lo mismo con el hover, el rojo es el archivo Item_Default_HoverPanel.html, el verde corresponde a Item_CommonHoverPanel_Header.html, el azul a Item_CommonHoverPanel_Body.html y el amarillo a Item_CommonHoverPanel_Actions.html

https://stucker2016.files.wordpress.com/2016/07/hover.png

Ahora bien, viendo todas las partes que tenemos para tocar podemos jugar un poco con lo que queremos. 

Cabe destacar que si quieren aplicar estilos a los pedazos no usen la primer div por ejemplo     <div id="Item_CommonItem_Body" > </div> por que no les va a tomar el estilo ya que esta div es simplemente indicativa para el script. Por ejemplo si quieren hacer los bordes como el que hice yo antes metan una div hija y encierren todos los items dentro de esa.

Ahora hablemos un poco del script, en la parte superior de los Body pueden ver que existe una declaración ManagedPropertyMapping  donde tienen propiedades, estas son las que van a cagar cuando haga la consulta. 

Bueno dentro de  Item_CommonItem_Body.html en la declaración antes dicha vamos a agregar entre 'Title':'Title' y 'Path':'Path'  'NombreDeLaPropiedad':'NombreDeLaPropiedad' en mi caso quedaria asi :

https://stucker2016.files.wordpress.com/2016/07/mapping.png?w=680

Nota: esto puede aparecer también como 'Title':'Title','Path':'Path'.  en este caso poner la propiedad entre ''

Ahora busquen donde quieran poner la propiedad y utilizan el siguiente comando ctx.CurrentItem.NombreDeLaPropiedad esto es javascript por lo que si lo quieren hacer entre un div por ejemplo lo ponen entre _=# #=_ por ejemplo:

<div> _=# ctx.CurrentItem.NombreDeLaPropiedad #=_ </div>

En caso de no tener nada no va a mostrar nada. También podrían mostrar un fragmento de html dependiendo si tiene algún valor:

<!--#_ 
 
   if(!$isEmptyString(ctx.CurrentItem.NombreDeLaPropiedad)
 
{
 
_#-->
 
      <div> _=# ctx.CurrentItem.NombreDeLaPropiedad #=_ </div>
 
<!--#_ 
 
}
_#-->

o bien citar a una imagen usando la url que contenga el parámetro

<div> <img src=' _=# ctx.CurrentItem.NombreDeLaPropiedad #=_ '/> </div>