我想获得使用elastica for symfony2的查询的总结果
我做了什么:
$u = $this->container->get('fos_elastica.finder.documents_index.documents');
$maxItems=10;
$query = new \Elastica\Query\Bool();
$elasticaQuery = new \Elastica\Query\QueryString($key_words.'~');
$elasticaQuery->setFuzzyPrefixLength(3);
$query->addMust($elasticaQuery);
try {
$q = new \Elastica\Query();
$q->setQuery($query);
$q->setFrom(($page - 1) * $maxItems);
}
catch (Exception $e) {
}
$data = $u->find($q);
$ data总是10个文件,但这不是问题,问题是如何获得总命中数,所以我可以在分页中使用它们。
答案 0 :(得分:0)
Elastica \ ResultSet类有一个名为getTotalHits()的方法,所以你可以在搜索后做这样的事情并得到总数/分页/等的完整记录数:
$hits = $resultSet->getTotalHits();
请参阅此处的源代码:Elastica ResultSet Class。
另外,Elastica源代码结构非常合理且易于阅读,这足以弥补其缺乏文档的问题。如果你遇到困难,非常值得阅读源代码和单元测试。