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

如何在FOSElasticabundle中使用scroll滚动查询并获取结果

FOSElasticaBundle Scroll滚动查询结果获取方案

你现有代码已经完成了scroll查询的基础配置,只需要遍历scroll()方法返回的迭代器即可拿到所有查询结果:

核心调用方法

scroll()方法返回的是FOS\ElasticaBundle\Pagerfanta\ScrollPagerfanta实例,属于可迭代对象,直接遍历就能分批拿到查询结果,你也可以主动调用getCurrentPageResults()方法获取当前批次的结果集。

完整可用示例

// 你的原有初始化逻辑
$res = $this->commentIndex->createSearch($query, ['scroll' => '1m']);
$res->addType('reading');
$scrollIterator = $res->scroll();

// 遍历获取全量结果
foreach ($scrollIterator as $currentPage) {
    // 遍历当前批次的每条结果
    foreach ($currentPage as $resultItem) {
        // $resultItem即为映射后的实体对象,可直接输出处理
        print_r($resultItem);
    }
}

常用扩展用法

  • 若需要获取ES原始返回的数组数据,不需要ORM实体映射,初始化时添加hydrate参数即可:
    $res = $this->commentIndex->createSearch($query, ['scroll' => '1m', 'hydrate' => false]);
    
  • 若需要手动获取当前批次的原始响应内容,调用$currentPage->getResponse()->getData()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:39:02