问题描述
我正在开发一个 .net 应用程序来处理 sharepoint 中的信息。 我使用的共享点库中有 5000 多个项目。
我编写了一个 CAML 过滤器来处理 >5000 个项目的问题。当我使用“Modified”列进行过滤时它工作正常,但如果我使用“Name”列,我会不断收到 > 5000 错误消息。
示例 1:
camlQuery.ViewXml = "<View><Query><Where><Geq><FieldRef Name='Modified'/><Value Type='DateTime'>2020-11-02T15:08:15Z</Value></Geq></Where></Query></View>"
示例 2:
'camlQuery.ViewXml = "<View><Query><Where><Geq><FieldRef Name='LinkFilename'/><Value Type='Text'>002-000000.pdf</Value></Geq></Where></Query></View>"
我看到的唯一区别是“修改”是一个索引列。 我尝试使用 sharepoint 在线菜单为“Name”列创建一个 indez,但此列名称(“Name”或“LinkFilename”)不在可能性之间。
如何为“名称”列创建索引? .
谢谢
解决方法
也许可以尝试使用 id 以便您可以跟踪您在每次调用中检索了多少项。
,并非所有列都可以编入索引。请查看以下文档以查看“支持和不支持的索引列”:
要克服列表视图阈值错误,请参考以下博客:
- https://natechamberlain.com/2018/05/21/how-to-resolve-sharepoint-list-view-threshold-error-the-view-cannot-be-displayed-because-it-exceeds-the-list-view-threshold/
- CSOM pagination
BR