Compartir a través de


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

  1. En Visual Studio 2005, en el menú Archivo, elija Nuevo y haga clic en Proyecto.

  2. En Tipos de proyecto, en C#, seleccione Windows.

  3. En Plantillas, seleccione Aplicación para Windows. En el campo Nombre, escribaQueryExClientSample y, a continuación, haga clic en Aceptar.

  4. Cree una clase proxy para el servicio web. Puede hacer esto de varias formas:

Para modificar el formulario predeterminado para la aplicación cliente

  1. En el Explorador de soluciones, haga doble clic en el formulario (Form1 si usa el formulario predeterminado).

  2. En el cuadro de herramientas, haga clic en Botón y, a continuación, arrástrelo al formulario. En Propiedades, cambie (Name) por cmdQuery.

  3. 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.

  4. En el cuadro de herramientas, haga clic en DataGridView y, a continuación, arrástrelo al formulario. En Propiedades, cambie (Name) por grdResults.

  5. 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

  1. 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.

  2. 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;
    
  3. En la siguiente línea de código, reemplace WebControl por WebPart.

    public class clsSearchQuery : WebControl
    
  4. 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