Sharepoint Web服务搜索:指定返回的结果数

时间:2010-08-26 13:55:01

标签: xml web-services sharepoint

过去几天我在学校里学习如何通过 http:// {servername} /_vti_bin/spsearch.asmx Web服务来搜索Sharepoint。

要解决的剩余问题是,当我执行搜索时,仅返回前10个结果。在返回的XML中,我可以看到:

<StartAt>1</StartAt>
<Count>10</Count>
<TotalAvailable>42</TotalAvailable>

所以我可以看到总共有42个结果,但我只获得了前10个结果。

我传递给Web Service的Query()方法的查询是:

<?xml version='1.0' encoding='utf-8' ?><QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'><Query domain='QDomain'><SupportedFormats><Format>urn:Microsoft.Search.Response.Document.Document</Format></SupportedFormats><Context><QueryText language='en-US' type='STRING'>{0}</QueryText></Context></Query></QueryPacket>

如何修改我的查询以便一次性返回所有结果?

2 个答案:

答案 0 :(得分:1)

您需要告诉搜索您想要多少结果。您可以在MSDN上查看搜索查询架构。相关部分是:

<Range>
   <StartAt />
   <Count />
</Range>

您需要在标记

中使用以下内容
<Range>
   <StartAt>0</StartAt>
   <Count>50</Count>
</Range>

(你可能不需要StartAt,因为它默认为0)

答案 1 :(得分:0)

<QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000">
      <Query domain="QDomain">
            <SupportedFormats>
                  <Format>urn:Microsoft.Search.Response.Document.Document</Format>
            </SupportedFormats>
            <Range>
                  <Count>MaxNumberGoesHere</Count>
            </Range>
            <Context>
                  <QueryText language="en-US" type="STRING">Maria</QueryText>
            </Context>
      </Query>
</QueryPacket>

我以为我之前尝试过这个并且出错了,所以我在这里问。看起来我一定得错了。