Introducción al modelo de objetos de consulta del motor de búsqueda Enterprise Search

Office 2007

Enterprise Search de Microsoft Office SharePoint Server 2007 proporciona un nuevo modelo de objetos de consulta que se puede usar en elementos web de búsqueda personalizados y en aplicaciones de búsqueda para ejecutar consultas en el servicio Enterprise Search.

El modelo de objetos de consulta se implementa en el espacio de nombres Microsoft.Office.Server.Search.Query, que se encuentra en Microsoft.Office.Server.Search.dll.

Uso del modelo de objetos de consulta en aplicaciones de búsqueda personalizadas

Puede escribir código que use el modelo de objetos de consulta desde distintos tipos de aplicaciones, entre las que se incluyen:

  • Un elemento web de búsqueda personalizado hospedado en un sitio de SharePoint.

  • Una aplicación web ASPX .

El modelo de objetos de consultas admite las consultas de búsqueda de Referencia de sintaxis SQL del motor de búsqueda Enterprise Search y Referencia de sintaxis de palabra clave del motor de búsqueda Enterprise Search.

Selección entre el modelo de objetos de consulta y el servicio web de consulta

Enterprise Search también expone sus funcionalidades de búsqueda a través del servicio web de consultas. Al igual que el modelo de objetos de consulta, el servicio de consulta web también admite consultas de sintaxis SQL y de palabras clave, y ambos admiten la devolución de varios tipos de resultado. La principal consideración a la hora de elegir entre los dos para las aplicaciones personalizadas es la ubicación de la aplicación. Si la aplicación es local en el servidor que ejecuta Office SharePoint Server 2007, puede usar el modelo de objetos de consultas. Para las aplicaciones remotas, debe usar el servicio web de consultas. Para obtener más información acerca del servicio web de consulta, consulte Introducción al servicio web de consulta del motor de búsqueda Enterprise Search.

Obtención de acceso al modelo de objetos de consulta

Para usar el modelo de objetos de consulta, debe establecer referencias a las siguientes DLL:

  • Microsoft.Office.Server.dll

  • Microsoft.Office.Server.Search.dll

  • Microsoft.SharePoint.dll

Acerca de las clases de consulta

El espacio de nombres Microsoft.Office.Server.Search.Query incluye tres clases de consulta:

  • Query  Esta clase no se usa directamente desde el código, pero está diseñada para ser la implementación base de las clases de modelos de objetos de consulta de Enterprise Search. En el código, use las clases FullTextSqlQuery y KeywordQuery.

  • FullTextSqlQuery  Use esta clase para ejecutar las consultas de búsqueda con sintaxis SQL.

  • KeywordQuery  Use esta clase para ejecutar las consultas de búsqueda con sintaxis de palabra clave.

Selección de una clase de consulta para una aplicación personalizada de búsqueda

Para determinar la clase adecuada que se debe usar para la aplicación personalizada de búsqueda, FullTextSqlQuery o KeywordQuery, considere el nivel de complejidad de las consultas de búsqueda que desea que admita el código de la aplicación.

Si puede crear las consultas que necesita usando únicamente la sintaxis de palabra clave, es posible que prefiera usar la clase KeywordQuery. Si usa la sintaxis de palabra clave para las consultas de búsqueda, puede pasar los términos de búsqueda directamente al componente de búsqueda y no es necesario analizar los términos de la búsqueda para crear la consulta. El resultado es un proceso sencillo de construcción de consultas mediante sintaxis de palabras clave.

No obstante, si necesita crear consultas más complejas, puede que la sintaxis de palabras clave no funcione. Para esas consultas, debería usar la clase FullTextSqlQuery. Por ejemplo, la sintaxis de palabras clave sólo admite coincidencias exactas de frases, palabras o prefijos. Además, si bien puede usar la sintaxis de palabras clave para especificar si se incluye o excluye un término determinado de la búsqueda, no se pueden construir grupos complejos de términos incluidos y excluidos. Para poder hacerlo, deberá usar la clase FullTextSqlQuery.

En la siguiente lista se identifican elementos de consulta adicionales que sólo se admiten en la sintaxis SQL mediante la clase FullTextSqlQuery:

  • FREETEXT()

  • CONTAINS()

  • LIKE

  • ORDER BY

Ejecución de la consulta de búsqueda

El flujo de ejecución de la clase KeywordQuery y la clase FullTextSqlQuery es esencialmente el mismo. El constructor de la clase tiene tres sobrecargas; al crear una instancia de la clase tiene que especificar uno de los siguientes:

  • Colección de sitios (como una instancia de la clase SPSite).

  • Contexto del proveedor de servicios compartidos (SSP) para el servicio de búsqueda (como una instancia de la clase ServerContext).

  • Nombre de la aplicación del proveedor de servicios compartidos (SSP) para el servicio de búsqueda (una cadena con el GUID del SSP)

En el ejemplo de código siguiente se muestra cómo usar la clase KeywordQuery.

using Microsoft.SharePoint;
...
KeywordQuery qRequest = new KeywordQuery(new SPSite("http://*****");

En el ejemplo de código siguiente se muestra cómo usar la clase FullTextSqlQuery.

using Microsoft.Office.Server;
...
FullTextSqlQuery qRequest = new FullTextSqlQuery(ServerContext.Current);

Lectura de los resultados de la búsqueda

La clase ResultTable implementa la interfaz IDataReader que permite obtener acceso fácilmente a las filas de resultados desde el código.

A continuación se muestra un ejemplo.

ResultTableCollection resultTables = queryRequest.Execute();
ResultTable relevantResults = resultTables[ResultType.RelevantResults];
DataTable resultsDataTable = new DataTable();
resultsDataTable.Load(relevantResults,LoadOption.OverwriteChanges);

Tipos de resultado

Los resultados de búsqueda devueltos por Enterprise Search se agrupan en cuatro tipos de resultados diferentes, como se describe en la tabla siguiente.

Nombre Descripción

RelevantResults

El conjunto de resultados principal, que contiene resultados de búsqueda del índice de contenido que coinciden con la consulta.

HighConfidenceResults

El conjunto de resultados que contiene los resultados de alta confianza.

SpecialTermResults

El conjunto de resultados que contiene los resultados que mejor coinciden con la consulta.

DefinitionResults

El conjunto de resultados que contiene las definiciones para palabras clave que coinciden con la consulta.

Estos tipos de resultado se definen en la enumeración ResultType del espacio de nombres Microsoft.Office.Server.Search.Query.

Vea también

Mostrar: