在客户端调用MOSS的搜索服务,实现更加灵活的搜索控制

    技术2022-05-11  62

    MOSS中提供了很多web services的服务,都放在http://<Site>/_vti_bin下我们可以在其他地方,比如winForm,webForm中调用,对MOSS的对象进行灵活操作。下面我简单列一下调用一个MOSS中的搜索服务的方法: 

    1、在VS2005中加入Web引用,引用地址为http://<Site>/_vti_bin/Search.asmx

     2、搜索代码如下:  

    using  System; using  System.Data; using  System.Configuration; using  System.Web; using  System.Web.Security; using  System.Web.UI; using  System.Web.UI.WebControls; using  System.Web.UI.WebControls.WebParts; using  System.Web.UI.HtmlControls; using  System.Text; public  partial  class  _Default : System.Web.UI.Page  {    protected void Page_Load(object sender, EventArgs e)    {        WebService.QueryService query = new WebService.QueryService();        StringBuilder sbXml = new StringBuilder();        string keywordString = "测试";        sbXml.Append("<QueryPacket xmlns='urn:Microsoft.Search.Query'>");        sbXml.Append(" <Query>");        sbXml.Append("      <SupportedFormats>");        sbXml.Append("          <Format revision='1'>");        sbXml.Append("              urn:Microsoft.Search.Response.Document:Document");        sbXml.Append("          </Format>");        sbXml.Append("      </SupportedFormats>");        sbXml.Append("      <Context>");        //language可以设置成en-us等不同语言, type可以设成MSSQLFT,表示使用sql查询的格式        sbXml.Append("          <QueryText language='zh-cn' type='STRING'>");        sbXml.Append(keywordString);        sbXml.Append("          </QueryText>");        sbXml.Append("      </Context>");        sbXml.Append(" </Query>");        sbXml.Append("</QueryPacket>");        //Sharepoint服务默认情况下是关闭匿名访问的,可以使用此方式指定访问时的用户名和密码,        //如果在域里面也可以使用 System.Net.NetworkCredential credentials = System.Net.CredentialCache.DefaultCredentials;        System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("test""test1");        query.Credentials = credentials;        // 返回xml格式的查询结果        string aa = query.Query(sbXml.ToString());        //返回DataSet的查询结果        DataSet set = query.QueryEx(sbXml.ToString());    }}   取得搜索结果就可以在客户端灵活显示了。

    最新回复(0)