【问题标题】:How to get totalhits from Query如何从查询中获得总命中数
【发布时间】:2014-02-21 11:36:34
【问题描述】:


我想获得使用 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 个文档,但这不是问题,问题是如何获得总点击数,以便我可以在分页中使用它们:)

【问题讨论】:

    标签: symfony pagination elasticsearch elastica


    【解决方案1】:

    Elastica\ResultSet 类有一个名为 getTotalHits() 的方法,因此您可以在搜索后执行类似的操作并获取总计/分页/等的完整记录数:

    $hits = $resultSet->getTotalHits();
    

    在此处查看源代码:Elastica ResultSet Class

    顺便说一句,Elastica 源代码结构良好且易于阅读,这足以弥补它缺乏文档的不足。如果您遇到困难,非常值得阅读源代码和单元测试。

    【讨论】:

    • 查找和搜索不返回结果集
    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 2014-01-15
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2019-08-21
    相关资源
    最近更新 更多