You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Sitecore Content Hub中用CreateEntityScroller获取超100个资产?

解决方案

一、调整CreateEntityScroller的每页获取数量

CreateEntityScroller默认每页返回50条数据,但你可以通过修改查询的Take属性增大每页获取量,再循环调用MoveNextAsync()遍历所有分页,以此获取100条以上的资产。

代码示例

// 调整查询的每页条数(建议根据平台限制设置,一般最大可设为1000,具体以实际测试为准)
query.Take(1000);

// 创建实体滚动器,设置足够长的超时时间,避免大量数据处理时超时
var entityScroller = MClient.Querying.CreateEntityScroller(query, TimeSpan.FromMinutes(5));

// 循环遍历所有分页
while (await entityScroller.MoveNextAsync())
{
    // 获取当前页的资产列表
    var currentPageAssets = entityScroller.Current.Items;
    
    // 处理当前页的资产(替换为你的业务逻辑)
    foreach (var asset in currentPageAssets)
    {
        // 示例操作:获取资产ID
        var assetId = asset.Id;
        // 后续业务处理...
    }
}

二、突破10000条资产的限制

QueryAsync()确实存在10000条的硬限制,无法直接突破,但CreateEntityScroller没有总条数限制——它通过分页滚动的方式分批获取所有符合条件的资产,只要循环调用MoveNextAsync()直到返回false,就能获取全部数据。

注意事项

  • Take值上限:Sitecore Content Hub通常对Take的最大值有限制(一般为1000),若设置超过该值会被自动截断为平台允许的最大值,建议测试后选择合适数值,平衡请求次数和性能。
  • 超时设置:滚动器的超时时间需根据数据总量调整,确保处理完所有分页前不会超时。
  • 性能优化:处理大量资产时,建议批量处理业务逻辑,避免单条处理带来的性能损耗,同时避免短时间内发送过多请求给平台。

内容的提问来源于stack exchange,提问作者Dhanush S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:05:03