/**
* @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;
}