1

我想搜索 SharePoint 中具有特定标题的文档库的所有子文件夹。我正在使用 service.asmx 网络服务。

不知何故它不起作用。我没有得到任何结果,也不知道如何解决这个问题。

我的代码如下所示:

 var service = new SharePointSearchService1.QueryService();
 service.PreAuthenticate = true;

 service.Credentials = CredentialCache.DefaultNetworkCredentials;

 var queryXml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
 queryXml += "<QueryPacket xmlns=\"urn:Microsoft.Search.Query\">";
 queryXml +=     "<Query>";
 queryXml +=         "<SupportedFormats>";
 queryXml +=             "<Format>urn:Microsoft.Search.Response.Folder:Folder</Format>";
 queryXml +=         "</SupportedFormats>";
 queryXml +=         "<Context>";
 queryXml +=              "<QueryText language=\"de-DE\" type=\"MSSQLFT\">SELECT Size, Rank, Path, Title, Description, Write FROM scope() WHERE  CONTAINS(Path, '\"http://sharepoint/area/test/Test Projects/*\"') </QueryText>";
 queryXml +=         "</Context>";
 queryXml +=         "<Range>";
 queryXml +=             "<StartAt>1</StartAt>";
 queryXml +=             "<Count>5000</Count>";
 queryXml +=         "</Range>";
 queryXml +=     "</Query>";
 queryXml += "</QueryPacket>";

 var result = service.Query(queryXml); 

上面的代码不起作用。我期望的是获取位于文档库(测试项目)内的所有项目(如文件夹)。

我可以使用以下查询搜索项目:

queryXml += "<QueryText language=\"de-DE\" type=\"MSSQLFT\">SELECT Size, Rank, Path, Title, Description, Write FROM scope() WHERE  CONTAINS(Title, '\"AA*\"') </QueryText>";

但这会返回整个站点的结果。我只想拥有文档库和该库的子文件夹中的项目。

我也尝试使用“like”谓词,但这也没有返回任何东西。

有人知道我做错了什么吗?

4

0 回答 0