似乎我无法使用fos-elastica-bundle为查询检索正确的文档总数。在我的设置中,索引包含40个与查询匹配的文档。用相同的查询启动pagerfanta,并对其发出两个调用:getCurrentPageResults()和getNbResults()。结果不一致,因为在当前页面中检索到10个文档,而返回的总数为1。
以下是演示此问题的代码段:
$esQuery = $myQueryBuilder->build($user, $search);
$results = $this->findPaginated($esQuery);
$results->setMaxPerPage(10);
$results->setCurrentPage(1);
echo "NBR OF DOCS FOR THIS PAGE=" . sizeof($results->getCurrentPageResults()) ."\n";
echo "TOTAL NBR OF DOCS=" . $results->getNbResults() ."\n";
打印内容如下:
NBR OF DOCS FOR THIS PAGE=10
TOTAL NBR OF DOCS=1
应为:
NBR OF DOCS FOR THIS PAGE=10
TOTAL NBR OF DOCS=40
我真的不明白我在做什么错,所以任何建议都将不胜感激。使用的版本是:Symfony v4.2.1 + friendsofsymfony / elastica-bundle v5.0.3 + pagerfanta / pagerfanta v1.1.0。