/** * @param \Elastica\ResultSet $searchResult * @param array $requestParameters * * @return array */ protected function formatSearchResult(ResultSet $searchResult, array $requestParameters) { $facetData = []; $facetConfig = $this->getFactory()->getSearchConfig()->getFacetConfigBuilder(); $aggregations = $searchResult->getAggregations(); foreach ($facetConfig->getAll() as $facetName => $facetConfigTransfer) { $fieldName = $facetConfigTransfer->getFieldName(); if (!isset($aggregations[$fieldName])) { continue; } $extractor = $this->getFactory()->createAggregationExtractorFactory()->create($facetConfigTransfer); $aggregation = $this->getAggregationRawData($aggregations, $facetConfigTransfer); $facetData[$facetName] = $extractor->extractDataFromAggregations($aggregation, $requestParameters); } return $facetData; }
/** * @param ResultSet $result * @return bool */ protected function collectAggregations(ResultSet $result) { if (!$result->hasAggregations()) { return false; } $this->aggregations = $result->getAggregations(); return true; }