Как получить totalhits из Query

Я хочу получить итоговые результаты для запроса с использованием эластичности для 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 документов, но это не проблема, проблема в том, как получить итоговые обращения, чтобы я мог использовать их в Pagination :)

1 ответ

Класс Elastica\ResultSet имеет метод getTotalHits(), поэтому вы можете сделать что-то подобное после поиска и получить полный счетчик записей для итогов/разбиения на страницы/и т. Д.:

$hits = $resultSet->getTotalHits();

См. Исходный код: Elastica ResultSet Class.

В стороне, исходный код Elastica невероятно хорошо структурирован и легко читается, что более чем компенсирует отсутствие документации. Хорошо стоит прочитать как исходный, так и unit тесты, если вы застряли.

licensed under cc by-sa 3.0 with attribution.