2010-08-26 84 views
1

我在過去的幾天中學習瞭如何通過http:// {servername} /_vti_bin/spsearch.asmx Web服務搜索Sharepoint 。Sharepoint網絡服務搜索:返回的結果數量指定

要克服的剩餘問題是,當我執行搜索時,只返回前10個結果。在返回的XML中,我可以看到:

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

所以我可以看到總共有42個結果,但我只得到前10個返回。

我傳遞到Web服務的查詢查詢()方法是:

<?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> 

如何修改我的查詢,以便它會立刻返回所有的結果?

回答

1

你需要告訴搜索你想要多少結果。您可以在MSDN上查看搜索查詢架構。對您的相關部分是:

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

你會想是在你的標籤下面

<Range> 
    <StartAt>0</StartAt> 
    <Count>50</Count> 
</Range> 

(你可能不需要StartAt因爲它默認爲0)

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> 

我以爲我以前曾嘗試過這種方式,並得到一個錯誤,因此我在這裏問。看起來我必須得到錯誤的查詢。