El servicio de búsqueda de SharePoint 2013 permite realizar consultas usando la sintaxis KQL (Keyword Query Language). Esta sintaxis nos permite combinar consultas del tipo texto libre con consultas del tipo restricciones de propiedades. Veamos algunos ejemplos.
Consultas de texto libre (Free-text queries)
Una consulta de texto libre nos permite enviar palabras o frases para que recuperemos contenido que se encuentra en el índice del buscador. Se puede usar la palabra o frase completa, parte de la misma u operadores como comodines, de cercanía, etc.
relevancia del motor de búsqueda
rele* del motor de búsqueda
«relevancia» NEAR(n=3) «búsqueda»
Consultas de restricciones de propiedades
Aquellas propiedades que estén marcadas como Queryable en el esquema de búsqueda se pueden utilizar para realizar consultas sobre el valor de estas y no sobre todo el índice del buscador.
ArticleAuthor:»Gustavo Velez»
MagazineNumber:»Número 21″
Parámetros opcionales
Teniendo en cuanta que cuando enviamos una consulta al buscador nos va a devolver un conjunto de resultados que cumplan con las restricciones de texto libre o propiedades que le hayamos enviado, se nos hace necesario el poder enviar parámetros que sean opcionales. Por ejemplo, en el Web Part de Consulta de Búsqueda podemos recoger variables del contexto de la página para la consulta. Variables del tipo QueryString, Campo de una página, etc.
La siguiente consulta nos devuelve el contenido que contengan la frase «relevancia del motor de búsqueda» cuyo autor sea el que pasamos por QueryString a la página:
relevancia del motor de búsqueda ArticleAuthor:{QueryString.Autor}
La consulta anterior se comportaría adecuadamente siempre que el los parámetros de la página encuentre la clave «Autor» para poder realizar la consulta, en caso contrario, no devolvería ningún resultado.
Para convertir la consulta por propiedad «ArticleAuthor» en opcional, tenemos que utilizar el operador «?» de la siguiente forma:
relevancia del motor de búsqueda {? ArticleAuthor:{QueryString.Autor}}
Con ese operador le estamos diciendo que si la consulta de propiedad restrictiva no devuelve resultados que no la tengamos en cuenta en el conjunto de resultados que nos tiene que devolver. Así podemos navegar a la página con o sin el parámetro.
http://www.compartimoss.com/Paginas/testsearch.aspx
http://www.compartimoss.com/Paginas/testsearch.aspx?Autor=»Gustavo Velez»
Ya hemos hablado otras veces del servicio de búsqueda, uno de los grandes valores que aporta SharePoint al conjunto de servicios que permiten trabajar con la plataforma. En este post hemos visto un pequeño truco de cómo implementar consultas desde el Web Part de consultas de búsqueda con la ayuda de la sintaxis KQL.
Saludos a todos…