早上好 .
像往常一样,我的问题是SharePoint Online Threshold .
我有一个包含大量项目(> 5.000)的自定义列表,我需要使用REST API调用在此列表上执行查询 .
此列表架构为:Title,Field1和Field2 .
Field1和Field2是短文本INDEXED列 .
好吧......我需要通过Field1或Field2过滤来查询这个列表
https://asdasd.sharepoint.com/sites/xxxx/_api/web/lists/GetByTitle('Big01')/ items?$ filter =(Field1 eq 'Value1 53')或(Field2 eq 'Value2 25')
尽管Field1和Field2都是索引字段,并且此查询的结果肯定少于5.000项(2项),我得到阈值错误 .
{“odata.error”:{“code”:“ - 2147024860,Microsoft.SharePoint.SPQueryThrottledException”,“message”:{“lang”:“en-US”,“value”:“禁止尝试操作,因为它超出了管理员强制执行的列表视图阈值 . “}}}
如果我在单个字段上执行查询,如下所示,一切正常,但如果我尝试组合这两个条件(OR),我得到SPQueryThrottledException .
https:// asdasd.sharepoint.com/sites/xxxx / _api / web / lists / GetByTitle('Big01')/ items?$ filter =(Field1 eq'Value1 53')
https:// asdasd.sharepoint.com/sites/xxxx/_api/web/lists/GetByTitle('Big01')/items?$filter=(Field2eq'Value2 25')
有任何想法吗?
谢谢,
塞尔吉奥
1 回答
Rest API中的OR过滤条件将循环并过滤项目2次,因此要过滤的总计数将超过列表视图阈值 . 一种解决方案是使用2个分离的ajax调用调用单个过滤器并组合数据 .