eZ\Publish\Core\Search\Elasticsearch\Content\Extractor::extract PHP Method

extract() public method

Extracts search result from $data returned by Elasticsearch.
public extract ( mixed $data ) : eZ\Publish\API\Repository\Values\Content\Search\SearchResult
$data mixed
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;
    }

Usage Example

Example #1
0
 /**
  * Finds Locations for the given $query
  *
  * @param \eZ\Publish\API\Repository\Values\Content\LocationQuery $query
  *
  * @return \eZ\Publish\API\Repository\Values\Content\Search\SearchResult
  */
 public function findLocations(LocationQuery $query)
 {
     $query->filter = $query->filter ?: new Criterion\MatchAll();
     $query->query = $query->query ?: new Criterion\MatchAll();
     $data = $this->gateway->find($query, "location");
     return $this->extractor->extract($data);
 }
All Usage Examples Of eZ\Publish\Core\Search\Elasticsearch\Content\Extractor::extract