Procedimiento para enviar una consulta de palabra clave al motor de búsqueda Enterprise Search desde una aplicación cliente
Enterprise Search de Microsoft Office SharePoint Server 2007 incluye el servicio web Query, que expone las capacidades de búsqueda de las aplicaciones cliente.
Nota
En este contexto, aplicación cliente se refiere a las aplicaciones que llaman al servicio web de Query. Esto puede incluir aplicaciones web de Microsoft ASP.NET, aplicaciones de Windows Forms y así sucesivamente.
El método web QueryEx del servicio web de Query envía una consulta al servicio de búsqueda y devuelve los resultados en un objeto System.Data.DataSet. El siguiente procedimiento muestra cómo usar el servicio web de Query de Enterprise Search para devolver resultados de búsqueda a una aplicación cliente basada en Windows mediante el método web de QueryEx e incluye las siguientes tareas:
Configuración de la aplicación cliente
Modificación del formulario para la aplicación cliente
Escritura del código
Para llevar a cabo este procedimiento, asegúrese de lo siguiente:
Microsoft Visual Studio 2005 está instalado en el equipo de desarrollo.
Tiene permisos para tener acceso a un sitio de SharePoint configurado para usar Enterprise Search.
Para configurar la aplicación cliente basada en Windows
En Visual Studio 2005, en el menú Archivo, elija Nuevo y haga clic en Proyecto.
En Tipos de proyecto, en C#, seleccione Windows.
En Plantillas, seleccione Aplicación para Windows. En el campo Nombre, escribaQueryExClientSample y, a continuación, haga clic en Aceptar.
Cree una clase proxy para el servicio web. Puede hacer esto de varias formas:
Si trabaja en Visual Studio 2005, siga los pasos de Procedimiento para crear una clase proxy de servicio web para el servicio web de consulta del motor de búsqueda Enterprise Search en Visual Studio 2005.
Use la herramienta Lenguaje de descripción de servicios web (Wsdl.exe) y siga los pasos que se describen en la documentación sobre la creación de un proxy de servicio web XML. A continuación, agregue una referencia para la clase proxy al proyecto para la aplicación cliente.
Para modificar el formulario predeterminado para la aplicación cliente
En el Explorador de soluciones, haga doble clic en el formulario (Form1 si usa el formulario predeterminado).
En el cuadro de herramientas, haga clic en Botón y, a continuación, arrástrelo al formulario. En Propiedades, cambie (Name) por cmdQuery.
En el cuadro de herramientas, haga clic en Cuadro de texto y, a continuación, arrástrelo al formulario. En Propiedades, cambie (Name) portxtQuery, y establezca Multiline en Verdadero.
En el cuadro de herramientas, haga clic en DataGridView y, a continuación, arrástrelo al formulario. En Propiedades, cambie (Name) por grdResults.
En el cuadro de herramientas, haga clic en Etiqueta y, a continuación, arrástrela al formulario. En Propiedades, cambie (Name) por lblResults y, a continuación, elimine el contenido de la propiedad Text.
Para escribir el código para la aplicación cliente
Haga doble clic en cmdQuery para agregar un controlador de eventos para el evento Click. El editor de código se abre con el cursor colocado en el controlador de eventos.
Agregue las siguientes directivas de espacio de nombres cerca de la parte superior del código en clsSearchQuery.cs.
using System.Drawing; using System.Data; using System.Xml; using System.Xml.Serialization; using Microsoft.SharePoint.WebPartPages; using Microsoft.Office.Server; using Microsoft.Office.Server.Search.Query;
En la siguiente línea de código, reemplace WebControl por WebPart.
public class clsSearchQuery : WebControl
Agregue la siguiente línea de código por encima de la declaración de clase para clsSearchQuery.
[XmlRoot(Namespace = "CustomSearchWebPart")]
Ejemplo
//The string containing the keyword to use in the search
string keywordString = "Microsoft";
//The XML string containing the query request information
//for the Web service
string qXMLString = "<QueryPacket xmlns='urn:Microsoft.Search.Query'>"+
"<Query><SupportedFormats><Format revision='1'>"+
"urn:Microsoft.Search.Response.Document:Document</Format>"+
"</SupportedFormats><Context><QueryText language='en-US' type='STRING'>"+
keywordString + "</QueryText></Context></Query></QueryPacket>";
QueryWebServiceProxy.QueryService queryService = new QueryWebServiceProxy.QueryService();
queryService.Credentials = System.Net.CredentialCache.DefaultCredentials;
System.Data.DataSet queryResults = queryService.QueryEx(qXMLString);
resultsGridView.DataSource = queryResults .Tables[0];
Vea también
Otros recursos
Introducción al servicio web de consulta del motor de búsqueda Enterprise Search
Procedimiento para crear una clase proxy de servicio web para el servicio web de consulta del motor de búsqueda Enterprise Search en Visual Studio 2005
Referencia del esquema Microsoft.Search para el motor de búsqueda Enterprise Search
Referencia de sintaxis de palabra clave del motor de búsqueda Enterprise Search