Ojs\CoreBundle\Service\Search\SearchManager::setupQueryResultSet PHP Метод

setupQueryResultSet() публичный Метод

public setupQueryResultSet ( )
    public function setupQueryResultSet()
    {
        $results = [];
        foreach ($this->getSectionList() as $section) {
            $setupAggs = $section == $this->getSection() ? true : false;
            $nativeQuery = $this->nativeQueryGenerator->generateNativeQuery($section, $setupAggs);
            if ($nativeQuery === false) {
                continue;
            }
            /** @var \Elastica\ResultSet $resultData */
            $resultData = $this->container->get('fos_elastica.index.search.' . $section)->search($nativeQuery);
            if ($resultData->getTotalHits() < 1) {
                continue;
            }
            $this->setTotalHit($this->getTotalHit() + $resultData->getTotalHits());
            if ($section !== $this->getSection()) {
                $results[$section]['total_item'] = $resultData->getTotalHits();
                $results[$section]['type'] = $this->translator->trans($section);
                continue;
            }
            $this->setCurrectSectionHit($resultData->getTotalHits());
            /**
             * @var Result $object
             */
            foreach ($resultData as $resultObject) {
                $objectDetail = $this->getObjectDetail($resultObject);
                $results[$section]['total_item'] = $resultData->getTotalHits();
                $results[$section]['type'] = $this->translator->trans($section);
                $result['detail'] = $objectDetail;
                $result['source'] = $resultObject->getSource();
                $results[$section]['data'][] = $result;
            }
            $resultAggs = $resultData->getAggregations();
            foreach ($resultAggs as $aggKey => $agg) {
                if (count($agg['buckets']) < 1) {
                    unset($resultAggs[$aggKey]);
                }
            }
            $this->setAggs($resultAggs);
        }
        $this->setResultSet($results);
        return $this;
    }