/**
* Extracts search result from $data returned by Elasticsearch.
*
* @param mixed $data
*
* @return \eZ\Publish\API\Repository\Values\Content\Search\SearchResult
*/
public function extract($data)
{
$result = new SearchResult(array("time" => $data->took, "maxScore" => $data->hits->max_score, "totalCount" => $data->hits->total));
if (isset($data->aggregations)) {
foreach ($data->aggregations as $name => $aggregationData) {
$result->facets[] = $this->facetBuilderVisitor->map($name, $aggregationData);
}
}
foreach ($data->hits->hits as $hit) {
$searchHit = new SearchHit(array("score" => $hit->_score, "valueObject" => $this->extractHit($hit)));
$result->searchHits[] = $searchHit;
}
return $result;
}