/** * @return int */ public function count() { if (null === $this->resultSet) { $this->search(); } return $this->resultSet->getTotalHits(); }
/** * Returns the number of results. * * @return integer The number of results. */ public function getNbResults() { if (!$this->resultSet) { return $this->searchable->search($this->query)->getTotalHits(); } return $this->resultSet->getTotalHits(); }
/** * @param \Elastica\ResultSet $searchResult * @param array $requestParameters * * @return \Generated\Shared\Transfer\PaginationSearchResultTransfer */ protected function formatSearchResult(ResultSet $searchResult, array $requestParameters) { $paginationConfig = $this->getFactory()->getSearchConfig()->getPaginationConfigBuilder(); $itemsPerPage = $paginationConfig->getCurrentItemsPerPage($requestParameters); $maxPage = ceil($searchResult->getTotalHits() / $itemsPerPage); $currentPage = min($paginationConfig->getCurrentPage($requestParameters), $maxPage); $paginationSearchResultTransfer = new PaginationSearchResultTransfer(); $paginationSearchResultTransfer->setNumFound($searchResult->getTotalHits())->setCurrentPage($currentPage)->setMaxPage($maxPage)->setCurrentItemsPerPage($itemsPerPage); return $paginationSearchResultTransfer; }
/** * Return the total results from the last search. * * @return int */ public function getTotalHits() { if (isset($this->results)) { return $this->results->getTotalHits(); } }
/** * * @param mixed $query * @param $fullResult (default = false) By default only the total hit count is returned. If set to true, the full ResultSet including facets is returned. * @return int|ResultSet */ public function count($query = '', $fullResult = false) { $this->setOptionsAndQuery(null, $query); $query = $this->getQuery(); $path = $this->getPath(); $response = $this->getClient()->request($path, Request::GET, $query->toArray(), array(self::OPTION_SEARCH_TYPE => self::OPTION_SEARCH_TYPE_COUNT)); $resultSet = new ResultSet($response, $query); return $fullResult ? $resultSet : $resultSet->getTotalHits(); }
/** * @group functional */ public function testBodyReuse() { $client = $this->_getClient(); $index = $client->getIndex('elastica_body_reuse_test'); $index->create(array(), true); $this->_waitForAllocation($index); $type = $index->getType('test'); $type->addDocument(new Document(1, array('test' => 'test'))); $index->refresh(); $resultSet = $index->search(array('query' => array('query_string' => array('query' => 'pew pew pew')))); $this->assertEquals(0, $resultSet->getTotalHits()); $response = $index->request('/_search', 'POST'); $resultSet = new ResultSet($response, Query::create(array())); $this->assertEquals(1, $resultSet->getTotalHits()); }
/** * Prepares query response. * * @param \Elastica\ResultSet $response * @return array */ protected function _prepareQueryResponse($response) { /* @var $response \Elastica\ResultSet */ if (!$response instanceof \Elastica\ResultSet || $response->getResponse()->hasError() || !$response->count()) { return array(); } $this->_lastNumFound = (int) $response->getTotalHits(); $result = array(); foreach ($response->getResults() as $doc) { $result[] = $this->_toArray($doc->getSource()); } return $result; }
/** * Return the total number of hits found from our search * * @return int */ public function getTotalHits() { return $this->elasticaResultSet->getTotalHits(); }
/** * getNextPage * * @param ResultSet $results * @param int $from * @access private * @return int */ private function getNextPage(ResultSet $results) { $query = $results->getQuery(); $from = $query->hasParam('from') ? $query->getParam('from') : 0; $size = $query->hasParam('size') ? $query->getParam('size') : 10; $hits = $results->getTotalHits(); if (count($results) == 0 && $from > 0) { $msg = 'current page is higher than max page'; throw new NoMoreResultException($msg); } elseif ($hits > $from + $size) { if ($size > 0) { $nextPage = (int) $from / $size + 2; } else { $nextPage = 2; } } else { $nextPage = null; } return $nextPage; }