Herramienta de consultas del motor de búsquedas SharePoint

El motor de búsquedas de SharePoint 2010 proporciona una serie de WebParts con los que realizar búsquedas y aplicar filtros sobre los resultados. También podemos extender las funcionalidades del motor de búsquedas mediante las API de búsqueda de SharePoint con las que realizar consultas más específicas y complejas. Disponemos de dos formas de hacer consultas: KeywordQuery y FullTextSQLQuery.

KeywordQuery utiliza una sintaxis sencilla de consulta basada en términos pensada para consultas que no requieran de filtros basados en valores sino en términos.

Una consulta de este tipo quedaría:

SPServiceContext serverContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default); 
SearchServiceApplicationProxy searchProxy = serverContext.GetDefaultProxy(typeof(SearchServiceApplicationProxy)) as SearchServiceApplicationProxy; ResultTable rTable = null; 
using (KeywordQuery kquery = new KeywordQuery(searchProxy))
{
    // Filtro KeywordQuery
    // ------------
    string keywordFiltroTexto = string.Empty;
    if (!string.IsNullOrEmpty(Filtro.Texto))
    {
        keywordFiltroTexto = string.Format(" Title:"{0}" ", Filtro.Texto);
    }

    kquery.QueryText = string.Format("IsDocument:1 {0} SCOPE:"Eventos"", keywordFiltroTexto);
    kquery.IgnoreAllNoiseQuery = true;
    kquery.TrimDuplicates = false;
    kquery.RowLimit = maximoNumeroDeResultados - resultados.TablaResultados.Rows.Count;
    kquery.ResultTypes = ResultType.RelevantResults;
    kquery.KeywordInclusion = KeywordInclusion.AnyKeyword;

    ResultTableCollection resultsll = kquery.Execute();
    rTable = resultsll[ResultType.RelevantResults];
    TablaResultados.Load(rTable, LoadOption.PreserveChanges);
    TablaResultadosRecomendados.Load(rTable, LoadOption.PreserveChanges);
    resultados.QuisoDecir = resultsll.SpellingSuggestion;
}

Con  FullTextSQLQuery podremos realizar consultas con una sintaxis similar a la de SQL con la que construir consultas complejas y muy específicas. Una consulta con esta sintaxis quedaría de la siguiente forma:

// Ejecuta la búsqueda con FullTextSqlQuery  
// -------------------------------------------
using (FullTextSqlQuery buscador = new FullTextSqlQuery(searchProxy))
{
    buscador.AuthenticationType = QueryAuthenticationType.NtAuthenticatedQuery;

    buscador.QueryText = string.Format("SELECT Title, Rank, Size, Descripcion, Write, Path, Keywords, Estado, FechaFinal, FechaInicial FROM scope() WHERE  ( ("SCOPE" = 'Eventos') AND ( FREETEXT(DefaultProperties,'{0}')  ORDER BY Rank DESC", fullFiltroTexto);
    buscador.ResultTypes = ResultType.RelevantResults;
    buscador.RowLimit = maximoNumeroDeResultados;
    buscador.IgnoreAllNoiseQuery = true;
    buscador.TrimDuplicates = false;
    buscador.KeywordInclusion = KeywordInclusion.AnyKeyword;

    ResultTableCollection results = buscador.Execute();
    rTable = results[ResultType.RelevantResults];
    TablaResultados.Load(rTable, LoadOption.OverwriteChanges);
    TablaResultadosRecomendados.Load(rTable, LoadOption.OverwriteChanges);
}

 

El problema lo encontramos a la hora de construir estas consultas durante el desarrollo, ya que no siempre resultan sencillas y en ocasiones necesitamos conocer que resultados devuelve. Para ello disponemos de la herramienta gratuita Search Explorer con la que podremos consultar los ámbitos disponibles, las propiedades mapeadas y los más importante construir y probar nuestras consultas sobre el motor de búsqueda en el momento sin necesidad de volver a compilar.

 

image

Desde un servidor con SharePoint 2010 instalado abriremos la aplicación y pulsaremos en “Get Search Apps” para cargar las aplicaciones de servicio de búsqueda disponibles. A continuación realizaremos doble click sobre la aplicación de búsqueda y se cargarán las propiedades del servicio, los ámbitos y las propiedades manejadas disponibles (Managed Properties).

Desde la pestaña “Queries” podremos construir la consulta seleccionando los ámbitos para los que queremos ejecutarla y marcando “Include” en aquellas propiedades manejadas que queramos incluir en la consulta. También podremos realizar un filtro por alguna de la propiedades introduciendo un valor en la casilla “Criteria”.

Una vez seleccionados los elementos sobre los que consultar pulsaremos en “Make SQL” para construir automáticamente la consulta en formato FullTextSQLQuery. Desde “QuerySQL” podremos modificar la consulta o ejecutarla desde el botón “Run Query”. Al hacerlo se abrirá una ventana con los resultados encontrados para la consulta indicada. Es importante que tengáis presente que la consulta se ejecutará con las credenciales del usuario logado en ese momento, de forma que los elementos para los que no tengamos permisos no nos aparecerán.

 

image

image

[IE9] Visor de descargas

Llevo un tiempo probando Internet Explorer 9 y una de las nuevas funcionalidades que me parecen bastante atractivas es la del visor de descargas con el que se centralizan todas las descargas realizadas desde Internet Explorer 9. Al descargar cualquier documento aparecerá en la parte inferior del navegador una barra indicando si deseamos descargar el fichero para guardarlo en una carpeta o abrirlo directamente. En el caso de seleccionar “Abrir” por defecto el documento se descargará en la carpeta C:Users{Nombre de Usuario}Downloads.

Para ver el progreso de la descarga o los ficheros que hemos descargado abriremos la ventana “Ver descargas” disponible desde Internet Explorer > icono que parece una rueda > Ver descargas (ver imágenes).

Lo que más me gusta es cuando estemos descargando un documento podremos pausar la descarga y volverla a continuar más tarde.

También es de destacar la facilidad con la que podemos encontrar documentos descargados anteriormente mediante el buscador independientemente de la ubicación en la que se encuentre.

Esta funcionalidad ya la teníamos con Firefox pero en IE9 han introducido alguna mejora como pueda ser:

  • La ubicación del documento.
  • Abrir con.
  • Detección de ficheros especiales como puedan ser hotfix.

Por último como pega le hecho en falta que me muestre algún icono de forma indicativa, pero por lo demás el funcionamiento es bastante aceptable.

 

image

image

image

Qué es el cloud Computing?

Con este título he querido compartir con DesarrolloWeb.com un artículo sobre el Cloud Computing donde he querido plasmar los conceptos básicos del Cloud Computing y sus características.

Con este resumen me gustaría eliminar la idea de que “el Cloud está verde” el concepto de Cloud no es algo nuevo (hay empresas trabajando con EC2 desde hace años) y si no se conoce no se debería subestimar, en todo caso lo que podría estar poco maduro serían los servicios que ofrecen algunos proveedores.

El Cloud Computing hoy por hoy es una realidad que podremos escoger o nó para nuestro proyecto, pero es una opción que está evolucionando muy rápido en estos últimos años y que sin duda no pasará de moda en poco tiempo porque las características que nos puede aportar (ahorro, flexibilidad, rápido time to market, baja inversión inicial, …) pueden llegar a ser algo muy beneficioso en determinados escenarios.

Encontrareis al artículo desde: http://www.desarrolloweb.com/articulos/cloud-computing.html

 

Aprovecho para invitaros al Grupo de Usuarios de Cloud Computing España (CLOUDES) donde encontrareis noticias, discusiones, eventos, WebCast, … ya somos más de 300 usuarios!!