簡體   English   中英

sharepoint list caml查詢問題,因為它超出了閾值限制

[英]sharepoint list caml query issue because it exceeds threshold limit

我在查詢SharePoint列表時遇到以下錯誤,列表有5005條記錄,閾值限制為5000.我有一個包含不同文件夾的sharepoint列表,我正在使用帶有RecursiveAll的CAML查詢來獲取所有文件夾中的記錄。 我收到這個錯誤: -

禁止嘗試的操作,因為它超出了管理員強制執行的列表視圖閾值。 Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()的Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream)處於

我的疑問是

"<View Scope='RecursiveAll'> <RowLimit>1000</RowLimit><Query><Where><Eq><FieldRef Name='Year' /><Value Type='Text'>" + Period + "</Value></Eq></Where></Query></View>";

年是索引列。如果我刪除where子句,它開始工作。在我看來recursiveall不使用where子句。

我不想更改列表閾值限制。

列表的默認閾值為5000.您需要更改此列表的SharePoint配置設置以獲得更高的閾值。 不確定您使用的是哪個版本的SharePoint,但是如果您可以訪問Central Admin,則會有一篇文章解釋如何更改它

如果您使用的是SharePoint Online,我認為您可能會陷入困境, 但其中一個答案可能會解決這個問題

要解決此問題,您需要使用ContentIterator。 基本上你是分批查詢例如2000項。 來自Microsoft網站:

SharePoint Server提供了一個新的API ContentIterator,可幫助您訪問大型列表中的5,000多個項目,而無需達到列表限制限制並接收SPQueryThrottleException。 ContentIterator實現了一種回調模式,用於對查詢進行分段,以便一次處理單個項目。 如果需要處理可能超出限制限制的大量項目,請考慮使用此功能。 以下簡單的示例演示了使用ContentIterator測試的方法,其中列表返回查詢中的20,001個項目。

有關官方文檔,請參閱此處

這個例子也可能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM