Cuando se instala y configura correctamente el Motor de Búsqueda de SharePoint, los resultados que genera para una consulta aparecen en el orden que los algoritmos internos determinan. Pero el orden por defecto generado por SharePoint no es necesariamente el orden que los requisitos de la empresa o compañía que utiliza el sistema desean tener. Un ejemplo común es que puede exigir que los productos de la empresa aparezcan en primer lugar en los resultados de búsqueda.
La relevancia se puede definir como los resultados que elevan la probabilidad de realizar una tarea con éxito. Aplicado a un sistema de búsqueda de información, se puede decir que los resultados más relevantes producidos por una búsqueda son los que con más probabilidad presentan la información que el usuario está buscando. En el ejemplo indicado en el párrafo anterior, es mucho más probable que un empleado de una empresa busque información sobre los productos de su propia empresa, por lo que los resultados más relevantes son los que están relaciones con estos productos, y no con los de la competencia.
El Motor de Búsqueda de SharePoint 2013 tiene algoritmos para calcular la relevancia ("Ranking") que son basados en modelos lingüísticos generales. Idealmente, los resultados mostrados en la primera página son los que contienen la información que el usuario está buscando. Cuando esto no ocurre, se habla de que es necesario ajustar la relevancia. Para esto, SharePoint proporciona los mecanismos necesarios para alterar los modelos y adaptar la relevancia a las necesidades particulares de un sistema.
Relevancia en el Motor de Búsqueda de SharePoint 2013
SharePoint utiliza dos tipos de fórmulas de ranking para calcular la relevancia: Estáticas y Dinámicas. La diferencia es relativa a si el cálculo del ranking se ve afectado o no por los términos de la consulta y las propiedades del elemento de contenido.
El ranking Dinámico describe el ranking que se ve afectado por los valores de las propiedades del contenido (también conocido como "query-dependent ranking"). Los componentes principales usados por el algoritmo Dinámico de ranking en el Motor de Búsqueda de SharePoint para calcular la relevancia son:
A su vez, el ranking Estático describe el ranking que no es impactado por el contenido o valor de las propiedades de un elemento (también conocido como "query-independent ranking"). Los componentes usados por este algoritmo son:
Ajuste de la Relevancia en SharePoint 2013
Aunque hay muchos factores que determinan la calidad de los resultados de una búsqueda, comenzando por supuesto por la consulta misma utilizada por el usuario, no todos los factores que contribuyen al cálculo de la relevancia pueden ser modificados. De todas formas, en SharePoint 2013 es posible manipular la relevancia a través del uso de diccionarios, páginas relevantes, reglas de ordenamiento dinámico y modelos de ranking.
Diccionarios de Búsqueda
Aunque estrictamente hablando los diccionarios no permiten modificar la relevancia en el Motor de Búsqueda, si es posible mejorar la experiencia de uso de las búsquedas influyendo indirectamente en la relevancia. Por ejemplo, definiendo diccionarios de sinónimos se puede lograr que los resultados se ajusten mejor a lo esperado.
Los tipos de Diccionarios de Búsqueda y su creación y uso es un tema demasiado extenso para este artículo, por lo que la segunda parte a publicar en el número 21 de CompartiMOSS se dedicará exclusivamente a los Diccionarios.
Páginas Relevantes
Las Páginas Relevantes son páginas que vinculan a información crítica dentro de la granja de SharePoint. Cuando se definen Páginas Relevantes, se afecta el ranking de cada página que está conectada por vínculos a la página Relevante por medio de "click distance". "Click distance", como se definió anteriormente es el número de clics necesario para navegar desde la Pagina Relevante al contenido a rastrear. Entre más cerca este la información a la Página Relevante, su ranking estático es mayor.
Las Paginas Relevantes se definen en la Aplicación de Servicio de Búsqueda ("Search Service Application", SSA) en donde se pueden definir tres niveles de Paginas Relevantes lo mismo que Páginas que no son Relevantes (las que ayudan a eliminar información irrelevante del cálculo de relevancia). En SharePoint On-Premise se define como Paginas Relevante por defecto la página principal de la colección de sitio de más alto nivel en la Aplicación Web. Es obligatorio tener por lo menos una página Relevante definida. Normalmente los administradores de SharePoint pueden definir algunas otras Páginas Relevantes, como por ejemplo la página de home de un subsitio, aunque se pueden definir múltiples si es necesario.
Los Administradores con conocimientos específicos de un área pueden influenciar la importancia relativa de páginas especificando otras páginas Relevantes y no-Relevantes. Un ejemplo de Páginas no-Relevantes podrían ser los URLs de sitios que contienen información obsoleta que solamente se mantiene como archivo.
Para acceder al menú de configuración de páginas Relevantes, desde la Administración central de SharePoint vaya a las páginas de Administración del Búsquedas y en el menú de acceso rápido (lado izquierdo) se encuentra el vínculo hacia "Páginas relevantes".
SharePoint contiene todos los cmdlets de PowerShell necesarios para trabajar con páginas Relevantes:
Los parámetros que estos cmdlets utilizan son:
El siguiente ejemplo crea una página Relevante en el segundo nivel, luego la mueve al tercero, crea una página no-Relevante y finalmente elimina la página que se movió al tercer nivel:
1# La cuenta utilizada por el Motor de Busqueda2
1$myPropietario = Get-SPEnterpriseSearchOwner -Level ssa2
1# Crear una nueva página en el segundo nivel2
1$mySqa = New-SPEnterpriseSearchQueryAuthority -Owner $myPropietario -SearchApplication $ssa -Url "http://servidor/sitios/abc" -Level 12
1# Mover la página del segundo al tercer nivel2
1Set-SPEnterpriseSearchQueryAuthority -Identity $mySqa -Level 2 -SearchApplication $ssa -Owner $myPropietario2
1# Crear una nueva página como no-autoritativa2
1New-SPEnterpriseSearchQueryDemoted -Owner $myPropietario -SearchApplication $ssa -Url "http://servidor/sitios/noautoritativa"2
1# Remover la página que se movió al tercer nivel2
1Remove-SPEnterpriseSearchQueryAuthority -Identity "http://servidor/sitios/abc" -Owner $myPropietario -SearchApplication $ssa -Confirm:$false2
Reglas de Consulta y Ordenamiento Dinámico
Para manipular la relevancia de los resultados de una consulta es posible establecer reglas de dos tipos: reglas que ejecutan antes de que se genere el grupo de resultados (Reglas de Consulta) y reglas que ejecuten una vez se tienen los resultados (Reglas de Ordenamiento). En ambos casos se puede lograr que determinados resultados aparezcan más hacia el comienzo de la lista (promover resultados) o que se muestren como menos importantes, moviéndolos hacia puestos menores en la lista (degradar resultados).
Aunque el resultado de ambos tipos de reglas puede llegar a ser similar, el primero se integra profundamente con los algoritmos internos de ranking del Motor de Búsqueda, lo que mejora el rendimiento de búsqueda y muestra de resultados. El segundo tipo de reglas se basa en un reordenamiento de los resultados ya rankeados por el Motor, proceso que teóricamente puede mostrar algún tipo de degradación en el rendimiento, aunque solo sea marginal.
Reglas de Consulta Dinámicas
Sin utilizar ningún tipo de programación, los administradores de SharePoint, los administradores de Colecciones de Sitios y los propietarios de Sitios pueden modificar la relevancia por medio de "Reglas de Consulta" ("Query Rules"). En una Regla de Consulta se definen las condiciones de la Regla y las acciones que ocurren cuando una condición ocurre reduciendo la cantidad de resultados o cambiando el orden en que se muestran. Por ejemplo, una condición de Regla de Consulta puede ser que un término en la consulta corresponda con una (o unas) palabra determinada en un Conjunto de Términos de SharePoint (definido en el Servicio de Metadatos Administrados) o que es una consulta realizada frecuentemente (tal como "video", por ejemplo). Cuando la condición ocurre, se puede iniciar una acción para mostrar un elemento específico al principio de la lista de resultados.
Como se indicó anteriormente, las Reglas de Consulta se pueden crear a nivel de Administración Central, Colección de Sitios o Sitios por medio de las páginas de administración de cada nivel. Las Reglas se heredan de un alcance superior al siguiente, pero cada nivel puede tener sus propias Reglas que no afectan a su nivel superior (pero son heredadas hacia su nivel inferior). SharePoint dispone de un número de Reglas predefinidas por defecto, pero su número depende de la licencia utilizada, haciendo por ejemplo que algunos tipos de Reglas no se puedan utilizar en SharePoint Foundation, pero si en SharePoint Server.
Existen seis tipos de condiciones para Reglas de Consulta:
A su vez, tres tipos de acciones se pueden acoplar a las condiciones:
Finalmente es posible definir una fecha de inicio y finalización de publicación de la Regla, lo mismo que dejarla definida pero inactiva y una cuenta de usuario que recibe un mensaje de advertencia para revisar la regla en una fecha determinada.
Como un ejemplo de configuración utilizando la Interfaz de Usuario, vaya a la "Configuración del sitio" desde el sitio de nivel superior de una Colección de Sitios - "Reglas de consultas de búsqueda" (sección "Administración de la colección de sitios") y en la página de "Administración de reglas de consulta" seleccione "Documentos (sistema)" en el primer combo-box. Luego utilice el vínculo de "Nueva regla de consulta", indique un nombre para la regla y seleccione "Consulta coincide exactamente con la palabra clave", indicando "sharepoint documento" en la expresión. Utilice el vínculo de "Agregar resultado promocionado" e indique un título a mostrar en la lista de resultados, lo mismo que el URL a donde debe redirigirse cuando se hace clic sobre él. Se puede utilizar el campo de Descripción para agregar información adicional en la lista de resultados:
Guarde la Regla y ejecute una búsqueda utilizando el término exacto configurado. Al principio de la lista de resultados aparecerá el término promocionado:
SharePoint 2013 no dispone de cmdlets de PowerShell para trabajar con Reglas de Consulta. Aunque el Modelo de Objetos de Servidor contiene el espacio de nombres Microsoft.Office.Server.Search (Microsoft.Office.Server.Search.dll en el hive 15/ISAPI) que si debería permitir trabajar programáticamente con Reglas de Consulta, una gran parte de sus clases y métodos son selladas, por lo que de todas formas son inutilizables para programación normal.
Reglas de Ordenamiento Dinámicas
Este tipo de reglas permiten reordenar los resultados de una consulta por medio de un grupo de condiciones de forma similar a las Reglas de Consulta, pero que son aplicadas después de que el Motor de Búsqueda ya ha generado la lista de resultados. La parte encargada de manejar la devolución de listas de resultados del Motor de Búsquedas utiliza palabras claves y XRANK para modificar el orden de la manera configurada.
Las Reglas de Ordenamiento Dinámicas se definen en el "Constructor de Consultas" de la WebPart de Resultados de Consulta (pestaña de "Ordenación"). En esta ventana, en el Combo-box de "Ordenar por" se debe seleccionar "Rank" para poder definir las Reglas de Ordenamiento Dinámicas. Luego, utilizando el vínculo de "Agregar regla de ordenación dinámica" se pueden definir nueve tipos de condiciones para "Promover" o "Disminuir" los resultados que cumplen la condición por un número determinado de niveles. Se pueden configurar múltiples condiciones por medio de un estamento "OR" (serán evaluados en orden de configuración).
Las condiciones que se pueden utilizar son:
Lo mismo que para las Reglas de Consulta Dinámicas, SharePoint no dispone de cmdlets de PowerShell para trabajar con Reglas de Ordenamiento, y las posibilidades de utilizar el Modelo de Objetos de Servidor son extremadamente reducidas, haciendo prácticamente imposible configurarlas de otra manera diferente a utilizando la Interface de Usuario.
Modelos de Ranking
El Motor de Búsqueda es responsable de asignarle un ranking a cada elemento que se encuentre en una consulta, basado en un número de factores definidos en el modelo de ordenación. Este modelo contiene las reglas y las operaciones matemáticas y lógicas que se deben aplicar a los resultados de la consulta. SharePoint Server 2013 dispone por defecto de catorce modelos de ranking que se aplican en diferentes contextos, tales como búsquedas en documentos o en información sobre personas.
Los modelos de ranking son archivos XML que se registran en SharePoint para que el Motor de Búsqueda los pueda utilizar. Aunque en SharePoint 2013 es posible modificar o crear nuevos modelos de ranking, Microsoft recomienda evitar hacerlo y utilizar las otras posibilidades descritas anteriormente para afectar el ranking. Muy probablemente esta es la razón por la que prácticamente no existe información disponible sobre la estructura y funcionamiento de estos modelos.
PowerShell para SharePoint 2013 dispone de cuatro cmdlets para trabajar con Modelos de Ranking:
Para exportar el modelo por defecto de SharePoint 2013 hacia un archivo físico utilice un script similar al siguiente:
1$ssa = Get-SPEnterpriseSearchServiceApplication -Identity "Aplicación de servicio de búsqueda"2
1$myPropietario = Get-SPenterpriseSearchOwner -Level ssa2
1$unModelo = Get-SPEnterpriseSearchRankingModel -SearchApplication $ssa -Owner $myPropietario2
1$unModelo.RankingModelXML > c:\unModelo.xml2
Una vez exportado, un modelo puede ser modificado e importado de nuevo en SharePoint, preferiblemente con un nombre diferente para no alterar el modelo original. El siguiente script permite importar el modelo exportado en el paso anterior:
1$myRankingModel = Get-Content c:\unModelo.xml2
1$myRankingModel = [String]$myRankingModel2
1$ssa = Get-SPEnterpriseSearchServiceApplication2
1$myPropietario = Get-SPenterpriseSearchOwner -Level ssa2
1$newrm = New-SPEnterpriseSearchRankingModel -SearchApplication $ssa -Owner $myPropietario -RankingModelXML $myRankingModel2
Los Modelos de Ranking consisten de diferentes "Características" ("Features") que, combinadas, forman el orden final de un elemento. El ranking se calcula para cada elemento en una consulta, y está basado en algoritmos matemáticos que pueden ser bastante complejos. El siguiente cuadro muestra las funciones de transformación para solamente las características de ranking estático y de proximidad (información proporcionada por Microsoft):
El modelo por defecto de ranking consta de siete de este tipo de características, que luego son agregadas por medio de modelos matemáticos que tratan de predecir la importancia del elemento en el conjunto de resultados. Los Modelos son altamente complejos de crear y testear; por ejemplo, el modelo por defecto que se exportó utilizando el script al principio de esta sección consta de 2.290 líneas de código XML.
Conclusiones
El Motor de Búsqueda de SharePoint 2013 calcula por defecto la relevancia de cada elemento en el conjunto de resultados de una consulta, permitiendo que los elementos que deben ser más interesantes para el usuario aparezcan al principio de la lista de resultados. Este ordenamiento se consigue por medio de modelos de Ranking que pueden ser creados y/o modificados. Pero existen otras formas para manipular el orden de los resultados, como por ejemplo por medio de reglas de ordenamiento que se pueden aplicar antes o después de que el Motor realice la búsqueda, por medio de la definición de Páginas Relevantes y la creación de Diccionarios de búsqueda.
Gustavo Velez MVP de SharePoint Server gustavo@gavd.net http://www.gavd.net