Share via


Modelo de objetos de consulta de la búsqueda de Windows SharePoint Services

Buscar en Windows SharePoint Services proporciona un modelo de objetos de consulta nuevo que puede usar en elementos web de búsqueda personalizada y aplicaciones de búsqueda para ejecutar consultas en el servicio Buscar.

El modelo de objetos de consulta se implementa en el espacio de nombres Microsoft.SharePoint.Search.Query, que se encuentra en el archivo Microsoft.SharePoint.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 alojado en un sitio de SharePoint.

  • Una aplicación web ASPX.

El modelo de objetos de consulta admite tanto Sintaxis SQL de búsqueda de Windows SharePoint Services como Sintaxis de palabra clave de Windows SharePoint Services Search en las consultas de búsqueda.

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

Buscar también expone sus funcionalidades de búsqueda a través del servicio web de consulta. Al igual que el modelo de objetos de consulta, el servicio web de consulta también admite consultas de sintaxis SQL y de palabras clave, y ambos permiten devolver varios tipos de resultado. Lo primero que hay que considerar a la hora de elegir entre los dos para las aplicaciones personalizadas es la ubicación de la aplicación. Si la aplicación personalizada se encuentra físicamente en el servidor que ejecuta Windows SharePoint Services 3.0, puede usar el modelo de objetos de consulta. Para las aplicaciones remotas, debe usar el servicio web de consulta. Para obtener más información acerca del servicio web de consulta, consulte Servicio web de consulta de Windows SharePoint Services.

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.SharePoint.Search.dll

  • Microsoft.SharePoint.dll

Acerca de las clases de consulta

El espacio de nombres Microsoft.SharePoint.Search.Query incluye tres clases de consultas:

  • Query  Esta clase no está diseñada para usarse directamente desde el código, sino para ser la implementación base de las clases del modelo de objetos de consulta de Buscar. En el código, use las clases FullTextSqlQuery yKeywordQuery.

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

  • KeywordQuery  Use esta clase para ejecutar 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 va a 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 los 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 las clases KeywordQuery y FullTextSqlQuery es esencialmente el mismo. El constructor de la clase tiene dos sobrecargas; cuando se crea una instancia de la clase, tiene que especificar uno de los siguientes elementos:

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

  • Nombre del sitio.

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

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

Lectura de los resultados de la búsqueda

La clase ResultTable implementa IDataReader para que pueda tener acceso con facilidad 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

Buscar en Windows SharePoint Services sólo devuelve un tipo de resultado: los resultados relevantes.

Vea también

Otros recursos

Sintaxis SQL de búsqueda de Windows SharePoint Services
Sintaxis de palabra clave de Windows SharePoint Services Search
Servicio web de consulta de Windows SharePoint Services