0

我需要使用 SharePoint REST API 筛选包含 5000 多个项目的列表

要筛选的列之一是托管元数据列,它阻止我使用 SharePoint REST API GET Urls

我必须在正文中使用带有 CAML 查询的 REST API POST 请求来实现这一点。

我的代码如下所示

var viewXml =
{
    ViewXml: "<View>" +
    "<Query>" +
    "<Where><Eq>" +
    "<FieldRef Name='RegionTestHidden'/>" +
    "<Value Type='TaxonomyFieldType'>" + "North" + "</Value>" +
    "</Eq></Where>" +

    "</Query>" +
    "</View>"
}

function CamlQueryRESTCall(listName, viewXml)
{

    var call = jQuery.ajax(
        {
            url: _spPageContextInfo.webAbsoluteUrl+ "/_api/Web/Lists/getByTitle('"+listName+"')/GetItems(query=@v1)?" +
            "@v1=" + JSON.stringify(viewXml),
            type: "POST",

            dataType: "json",
            headers:
            {
                Accept: "application/json;odata=verbose",
                "X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
            }
        }
        );

    return call;

}

我遇到的问题是,如果我根据South结果包含超过 5000 个项目的区域进行过滤,我会收到HTTP Error 500 Internal Server Error错误消息List item threshold exceeded

通过 GET 请求,我可以使用$topdata.d.__next加载 5000 多个项目。但是如何在 POST 请求中做类似的逻辑呢?

我尝试包含<RowLimit>1000</RowLimit>在 CAML 查询中,但仍然出现同样的错误

查询中使用的列被索引了。

4

1 回答 1

0

这是由于 SharePoint 具有的列表视图阈值。看这里

这是一个门槛,您可以根据自己的需要进行更改。这是在 Central Admin 中完成的,如下所示:

  • 转到您的 SharePoint 场的中央管理
  • 转到“应用程序管理”部分下的“管理 Web 应用程序”
  • 选择迁移站点的“Web 应用程序”
  • 单击“常规设置”下拉菜单并选择“资源限制”
  • 将“列表视图阈值”更改为 12000 或类似的值。
于 2018-11-21T17:29:06.090 回答