Laravel Algolia分页超过1000个结果

Laravel Algolia分页超过1000个结果,laravel,algolia,laravel-scout,Laravel,Algolia,Laravel Scout,我正在用Algolia测试Laravel。Algolia将搜索结果的最大数量限制为1000个。我想这对我来说很好 我的问题是,我不能从Algolia请求1000条搜索记录,然后进行分页。我试过: $result = Model::search(request()->keywords)->take(1000)->paginate(50); 但我仍然让拉威尔提供超过20页,我应该有更多的页面。如果有1000条以上的记录,它会对所有可用记录进行分页 有什么建议吗?我对@Amigo做

我正在用Algolia测试Laravel。Algolia将搜索结果的最大数量限制为1000个。我想这对我来说很好

我的问题是,我不能从Algolia请求1000条搜索记录,然后进行分页。我试过:

$result = Model::search(request()->keywords)->take(1000)->paginate(50);
但我仍然让拉威尔提供超过20页,我应该有更多的页面。如果有1000条以上的记录,它会对所有可用记录进行分页


有什么建议吗?

我对@Amigo做了一个小改动,就解决了这个问题。我的代码:

使用Lightning\Pagination\LengthAwarePaginator


使用标准的Laravel paginator现在可以正常工作。

使用Algolia的最佳方法是在需要下一页时查询它。你能详细说明一下为什么你需要一次得到所有的结果吗?您将从数据库中提取大量数据。@Julien Bourdeau,我需要一页一页的结果。但什么是正确的方法呢?你能,请,给我指一个帖子或页面吗?请提供更多关于最终结果的细节,这样我就可以理解你在做什么。如果您只需要一个结果,可以使用
->next()
方法,尽管我仍然不知道您真正在做什么。
protected $perPage = 50;

public function search()
{

    $results = Model::search(request()->keywords)->take(1000)->get();

    $results = new LengthAwarePaginator(
       $results->slice((LengthAwarePaginator::resolveCurrentPage() *
        $this->perPage)-$this->perPage,
       $this->perPage)->all(), count($results),
       $this->perPage, null, ['path' => '']);

    return view('/searchResult', compact('results'));

}